From 29c4a2b2c3662dd8cc9f9c92ecdc534c8f0d0200 Mon Sep 17 00:00:00 2001 From: Jake Bolam Date: Tue, 15 Jan 2019 00:16:22 +0800 Subject: [PATCH] fix: ensure table is generated correctly (#24) --- src/ContentFiles/index.js | 22 +++----- src/OptionsConfig/index.js | 9 +++- src/processIssueComment.js | 1 - .../__snapshots__/index.test.js.snap | 31 +++++++++++ test/ContentFiles/index.test.js | 52 +++++++++++++++++++ test/ContentFiles/test-readme-file.md | 26 ++++++++++ test/__snapshots__/index-e2e.test.js.snap | 4 +- 7 files changed, 126 insertions(+), 19 deletions(-) create mode 100644 test/ContentFiles/__snapshots__/index.test.js.snap create mode 100644 test/ContentFiles/index.test.js create mode 100644 test/ContentFiles/test-readme-file.md diff --git a/src/ContentFiles/index.js b/src/ContentFiles/index.js index 1cc0f807..a0a0f82e 100644 --- a/src/ContentFiles/index.js +++ b/src/ContentFiles/index.js @@ -6,29 +6,21 @@ const AllContributorBotError = require('../utils/errors') * Fetches, stores, generates, and updates the readme content files for the contributors list */ class ContentFiles { - constructor({ context, repository }) { - this.context = context + constructor({ repository }) { this.repository = repository this.contentFilesByPath = null } async fetch(optionsConfig) { const options = optionsConfig.get() - if (Array.isArray(options.files)) { - if (options.files.length > 5) { - throw new AllContributorBotError( - `Your .all-contributorsrc cannot contain more than 5 files.`, - ) - } - - this.contentFilesByPath = await this.repository.getMultipleFiles( - options.files, + if (options.files.length > 5) { + throw new AllContributorBotError( + `Your .all-contributorsrc cannot contain more than 5 files.`, ) - } else { - this.contentFilesByPath = await this.repository.getMultipleFiles([ - 'README.md', - ]) } + this.contentFilesByPath = await this.repository.getMultipleFiles( + options.files, + ) } async generate(optionsConfig) { diff --git a/src/OptionsConfig/index.js b/src/OptionsConfig/index.js index 0dc363d9..86a1dc66 100644 --- a/src/OptionsConfig/index.js +++ b/src/OptionsConfig/index.js @@ -48,7 +48,14 @@ class OptionsConfig { } get() { - return this.options + const options = this.options + if (!Array.isArray(options.files)) { + options.files = ['README.md'] + } + if (!Number.isInteger(options.contributorsPerLine)) { + options.contributorsPerLine = 7 + } + return options } getRaw() { diff --git a/src/processIssueComment.js b/src/processIssueComment.js index f613337a..b36117f7 100644 --- a/src/processIssueComment.js +++ b/src/processIssueComment.js @@ -32,7 +32,6 @@ async function processAddContributor({ }) const contentFiles = new ContentFiles({ - context, repository, }) await contentFiles.fetch(optionsConfig) diff --git a/test/ContentFiles/__snapshots__/index.test.js.snap b/test/ContentFiles/__snapshots__/index.test.js.snap new file mode 100644 index 00000000..b88c41a1 --- /dev/null +++ b/test/ContentFiles/__snapshots__/index.test.js.snap @@ -0,0 +1,31 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`ContentFiles Add's new contributor 1`] = ` +"# TestContentFIles + +[![All Contributors](https://img.shields.io/badge/all_contributors-2-orange.svg?style=flat-square)](#contributors) + +A test for content files generation + +### Content +1. Stuff here +2. Yeah boy + + +## Contributors + +Thanks goes to these wonderful people ([emoji key](https://github.com/all-contributors/all-contributors#emoji-key)): + + + +| [
Jake Bolam](https://jakebolam.com)
[💻](#code-jakebolam \\"Code\\") [🤔](#ideas-jakebolam \\"Ideas, Planning, & Feedback\\") [🚇](#infra-jakebolam \\"Infrastructure (Hosting, Build-Tools, etc)\\") [⚠️](#test-jakebolam \\"Tests\\") | [
tbenning](https://github.com/tbenning)
[🎨](#design-tbenning \\"Design\\") | +| :---: | :---: | + + +This project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome + +## LICENSE + +[MIT](LICENSE) +" +`; diff --git a/test/ContentFiles/index.test.js b/test/ContentFiles/index.test.js new file mode 100644 index 00000000..09354624 --- /dev/null +++ b/test/ContentFiles/index.test.js @@ -0,0 +1,52 @@ +const fs = require('fs') +const path = require('path') + +const ContentFiles = require('../../src/ContentFiles') + +describe('ContentFiles', () => { + const mockRepository = {} + const mockTestFileContent = fs.readFileSync( + path.join(__dirname, 'test-readme-file.md'), + 'utf8', + ) + + test(`Add's new contributor`, async () => { + const contentFiles = new ContentFiles({ + repository: mockRepository, + }) + contentFiles.contentFilesByPath = { + 'README.md': { + content: mockTestFileContent, + }, + } + + const mockOptionsConfig = { + get: function() { + return { + contributorsPerLine: 7, + contributors: [ + { + login: 'jakebolam', + name: 'Jake Bolam', + avatar_url: + 'https://avatars2.githubusercontent.com/u/3534236?v=4', + profile: 'https://jakebolam.com', + contributions: ['code', 'ideas', 'infra', 'test'], + }, + { + login: 'tbenning', + name: 'tbenning', + avatar_url: + 'https://avatars2.githubusercontent.com/u/7265547?v=4', + profile: 'https://github.com/tbenning', + contributions: ['design'], + }, + ], + } + }, + } + await contentFiles.generate(mockOptionsConfig) + + expect(contentFiles.get()['README.md'].content).toMatchSnapshot() + }) +}) diff --git a/test/ContentFiles/test-readme-file.md b/test/ContentFiles/test-readme-file.md new file mode 100644 index 00000000..a9868e0d --- /dev/null +++ b/test/ContentFiles/test-readme-file.md @@ -0,0 +1,26 @@ +# TestContentFIles + +[![All Contributors](https://img.shields.io/badge/all_contributors-2-orange.svg?style=flat-square)](#contributors) + +A test for content files generation + +### Content +1. Stuff here +2. Yeah boy + + +## Contributors + +Thanks goes to these wonderful people ([emoji key](https://github.com/all-contributors/all-contributors#emoji-key)): + + + +| [
Jake Bolam](https://jakebolam.com)
[💻](https://github.com/all-contribtuors/bot/commits?author=jakebolam "Code") [🤔](#ideas-jakebolam "Ideas, Planning, & Feedback") [🚇](#infra-jakebolam "Infrastructure (Hosting, Build-Tools, etc)") [⚠️](https://github.com/all-contribtuors/bot/commits?author=jakebolam "Tests") | +| :---: | + + +This project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome + +## LICENSE + +[MIT](LICENSE) diff --git a/test/__snapshots__/index-e2e.test.js.snap b/test/__snapshots__/index-e2e.test.js.snap index 75a91aec..7cf16491 100644 --- a/test/__snapshots__/index-e2e.test.js.snap +++ b/test/__snapshots__/index-e2e.test.js.snap @@ -44,7 +44,7 @@ Object { exports[`All Contributors app - End to end Happy path, add correct new contributor 2`] = ` Object { "branch": "all-contributors/add-jakebolam", - "content": "IyBBbGxDb250cmlidXRvcnNCb3QKQSBib3QgZm9yIGF1dG9tYXRpY2FsbHkgYWRkaW5nIGFsbC1jb250cmlidXRvcnMuIPCfpJYKClshW0J1aWxkXShodHRwczovL2ltZy5zaGllbGRzLmlvL2NpcmNsZWNpL3Byb2plY3QvZ2l0aHViL2FsbC1jb250cmlidXRvcnMvYWxsLWNvbnRyaWJ1dG9ycy1ib3QvbWFzdGVyLnN2ZyldKGh0dHBzOi8vY2lyY2xlY2kuY29tL2doL2FsbC1jb250cmlidXRvcnMvYWxsLWNvbnRyaWJ1dG9ycy1ib3QpClshW0NvdmVyYWdlXShodHRwczovL2ltZy5zaGllbGRzLmlvL2NvZGVjb3YvYy9naXRodWIvYWxsLWNvbnRyaWJ1dG9ycy9hbGwtY29udHJpYnV0b3JzLWJvdC5zdmcpXShodHRwczovL2NvZGVjb3YuaW8vZ2l0aHViL2FsbC1jb250cmlidXRvcnMvYWxsLWNvbnRyaWJ1dG9ycy1ib3QpClshW0FsbCBDb250cmlidXRvcnNdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvYWxsX2NvbnRyaWJ1dG9ycy0xLW9yYW5nZS5zdmc/c3R5bGU9ZmxhdC1zcXVhcmUpXSgjY29udHJpYnV0b3JzKQpbIVtDaGF0IG9uIFNsYWNrXShodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL3NsYWNrLWpvaW4tZmY2OWI0LnN2ZyldKGh0dHBzOi8vam9pbi5zbGFjay5jb20vdC9hbGwtY29udHJpYnV0b3JzL3NoYXJlZF9pbnZpdGUvZW5RdE5URTNPRE15TVRBNE5UazBMVFV3WkRNeFpHWmtNbVZpTXpZell6azJZVE0yTmpSa1pHTTVZemMwWlRjNU5tWXpOV1kzWTJRMFpUWTNabUZoWkRneVkyRTNabUl6TldRd01UVXhabUUpCgoKIyMgSW5zdGFsbGF0aW9uCjEuIEluc3RhbGwgQXBwCjIuIFBsZWFzZSBzZXR1cCB5b3VyIGBSRUFETUUubWRgIGFuZCBgLmFsbC1jb250cmlidXRvcnNyY2AgdXNpbmcgdGhlIFthbGwtY29udHJpYnV0b3JzLWNsaSB0b29sXShodHRwczovL2dpdGh1Yi5jb20vYWxsLWNvbnRyaWJ1dG9ycy9hbGwtY29udHJpYnV0b3JzLWNsaSkKPiBJbiB0aGUgZnV0dXJlIHdlIHdhbnQgdG8gcmVtb3ZlIHRoZSBuZWVkIGZvciB0aGUgQ0xJIHRvb2wsIGlmIHlvdSB3YW50IHRvIGhlbHAgb3V0IFtzZWUgdGhlIGlzc3VlXShodHRwczovL2dpdGh1Yi5jb20vYWxsLWNvbnRyaWJ1dG9ycy9hbGwtY29udHJpYnV0b3JzLWJvdC9pc3N1ZXMvMykKCgojIyBVc2FnZQoKIyMjIEFkZGluZyBjb250cmlidXRpb25zCjEuIENvbW1lbnQgb24gSXNzdWUvUFIgZXRjIHdpdGggdGV4dDogYEBBbGxDb250cmlidXRvckJvdCBwbGVhc2UgYWRkIGpha2Vib2xhbSBmb3IgaW5mcmFzdHJ1Y3R1cmUsIHRlc3RpbmcgYW5kIGNvZGVgIChDYW4gYWxzbyB1c2UgdGhlIHNob3J0IHRlcm1zLCBmdWxsIGtleSBjb21pbmcgc29vbikKMi4gQm90IHdpbGwgbG9vayBmb3IgYC5hbGwtY29udHJpYnV0b3JzcmNgIGlmIG5vdCBmb3VuZCwgY29tbWVudHMgb24gcHIgdG8gcnVuIHNldHVwCjMuIElmIHVzZXIgZXhpc3RzLCBhZGQgbmV3IGNvbnRyaWJ1dGlvbiwgaWYgbm90IGFkZCB1c2VyIGFuZCBhZGQgY29udHJpYnV0aW9uCgoKIyMgQ29udHJpYnV0aW5nCklmIHlvdSBoYXZlIHN1Z2dlc3Rpb25zIGZvciBob3cgdGhlIEFsbENvbnRyaWJ1dG9yc0JvdCBjb3VsZCBiZSBpbXByb3ZlZCwgb3Igd2FudCB0byByZXBvcnQgYSBidWcsIFtvcGVuIGFuIGlzc3VlXShodHRwczovL2dpdGh1Yi5jb20vYWxsLWNvbnRyaWJ1dG9ycy9hbGwtY29udHJpYnV0b3JzLWJvdC9pc3N1ZXMpIQoKRm9yIG1vcmUsIGNoZWNrIG91dCB0aGUgW0NvbnRyaWJ1dGluZyBHdWlkZV0oQ09OVFJJQlVUSU5HLm1kKS4KCiMjIENvbnRyaWJ1dG9ycwoKVGhhbmtzIGdvZXMgdG8gdGhlc2Ugd29uZGVyZnVsIHBlb3BsZSAoW2Vtb2ppIGtleV0oaHR0cHM6Ly9naXRodWIuY29tL2FsbC1jb250cmlidXRvcnMvYWxsLWNvbnRyaWJ1dG9ycyNlbW9qaS1rZXkpKToKCjwhLS0gQUxMLUNPTlRSSUJVVE9SUy1MSVNUOlNUQVJUIC0gRG8gbm90IHJlbW92ZSBvciBtb2RpZnkgdGhpcyBzZWN0aW9uIC0tPgo8IS0tIHByZXR0aWVyLWlnbm9yZSAtLT4KfCBbPGltZyBzcmM9Imh0dHBzOi8vYXZhdGFyczIuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMzUzNDIzNj92PTQiIHdpZHRoPSIxMDBweDsiLz48YnIgLz48c3ViPjxiPkpha2UgQm9sYW08L2I+PC9zdWI+XShodHRwczovL2pha2Vib2xhbS5jb20pPGJyIC8+W/CfkrtdKGh0dHBzOi8vZ2l0aHViLmNvbS9hbGwtY29udHJpYnR1b3JzL2JvdC9jb21taXRzP2F1dGhvcj1qYWtlYm9sYW0gIkNvZGUiKSBb8J+ah10oI2luZnJhLWpha2Vib2xhbSAiSW5mcmFzdHJ1Y3R1cmUgKEhvc3RpbmcsIEJ1aWxkLVRvb2xzLCBldGMpIikgfAp8CjwhLS0gQUxMLUNPTlRSSUJVVE9SUy1MSVNUOkVORCAtLT4KClRoaXMgcHJvamVjdCBmb2xsb3dzIHRoZSBbYWxsLWNvbnRyaWJ1dG9yc10oaHR0cHM6Ly9naXRodWIuY29tL2FsbC1jb250cmlidXRvcnMvYWxsLWNvbnRyaWJ1dG9ycykgc3BlY2lmaWNhdGlvbi4gQ29udHJpYnV0aW9ucyBvZiBhbnkga2luZCB3ZWxjb21lCgojIyBMSUNFTlNFCgpbTUlUXShMSUNFTlNFKQo=", + "content": "IyBBbGxDb250cmlidXRvcnNCb3QKQSBib3QgZm9yIGF1dG9tYXRpY2FsbHkgYWRkaW5nIGFsbC1jb250cmlidXRvcnMuIPCfpJYKClshW0J1aWxkXShodHRwczovL2ltZy5zaGllbGRzLmlvL2NpcmNsZWNpL3Byb2plY3QvZ2l0aHViL2FsbC1jb250cmlidXRvcnMvYWxsLWNvbnRyaWJ1dG9ycy1ib3QvbWFzdGVyLnN2ZyldKGh0dHBzOi8vY2lyY2xlY2kuY29tL2doL2FsbC1jb250cmlidXRvcnMvYWxsLWNvbnRyaWJ1dG9ycy1ib3QpClshW0NvdmVyYWdlXShodHRwczovL2ltZy5zaGllbGRzLmlvL2NvZGVjb3YvYy9naXRodWIvYWxsLWNvbnRyaWJ1dG9ycy9hbGwtY29udHJpYnV0b3JzLWJvdC5zdmcpXShodHRwczovL2NvZGVjb3YuaW8vZ2l0aHViL2FsbC1jb250cmlidXRvcnMvYWxsLWNvbnRyaWJ1dG9ycy1ib3QpClshW0FsbCBDb250cmlidXRvcnNdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvYWxsX2NvbnRyaWJ1dG9ycy0xLW9yYW5nZS5zdmc/c3R5bGU9ZmxhdC1zcXVhcmUpXSgjY29udHJpYnV0b3JzKQpbIVtDaGF0IG9uIFNsYWNrXShodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL3NsYWNrLWpvaW4tZmY2OWI0LnN2ZyldKGh0dHBzOi8vam9pbi5zbGFjay5jb20vdC9hbGwtY29udHJpYnV0b3JzL3NoYXJlZF9pbnZpdGUvZW5RdE5URTNPRE15TVRBNE5UazBMVFV3WkRNeFpHWmtNbVZpTXpZell6azJZVE0yTmpSa1pHTTVZemMwWlRjNU5tWXpOV1kzWTJRMFpUWTNabUZoWkRneVkyRTNabUl6TldRd01UVXhabUUpCgoKIyMgSW5zdGFsbGF0aW9uCjEuIEluc3RhbGwgQXBwCjIuIFBsZWFzZSBzZXR1cCB5b3VyIGBSRUFETUUubWRgIGFuZCBgLmFsbC1jb250cmlidXRvcnNyY2AgdXNpbmcgdGhlIFthbGwtY29udHJpYnV0b3JzLWNsaSB0b29sXShodHRwczovL2dpdGh1Yi5jb20vYWxsLWNvbnRyaWJ1dG9ycy9hbGwtY29udHJpYnV0b3JzLWNsaSkKPiBJbiB0aGUgZnV0dXJlIHdlIHdhbnQgdG8gcmVtb3ZlIHRoZSBuZWVkIGZvciB0aGUgQ0xJIHRvb2wsIGlmIHlvdSB3YW50IHRvIGhlbHAgb3V0IFtzZWUgdGhlIGlzc3VlXShodHRwczovL2dpdGh1Yi5jb20vYWxsLWNvbnRyaWJ1dG9ycy9hbGwtY29udHJpYnV0b3JzLWJvdC9pc3N1ZXMvMykKCgojIyBVc2FnZQoKIyMjIEFkZGluZyBjb250cmlidXRpb25zCjEuIENvbW1lbnQgb24gSXNzdWUvUFIgZXRjIHdpdGggdGV4dDogYEBBbGxDb250cmlidXRvckJvdCBwbGVhc2UgYWRkIGpha2Vib2xhbSBmb3IgaW5mcmFzdHJ1Y3R1cmUsIHRlc3RpbmcgYW5kIGNvZGVgIChDYW4gYWxzbyB1c2UgdGhlIHNob3J0IHRlcm1zLCBmdWxsIGtleSBjb21pbmcgc29vbikKMi4gQm90IHdpbGwgbG9vayBmb3IgYC5hbGwtY29udHJpYnV0b3JzcmNgIGlmIG5vdCBmb3VuZCwgY29tbWVudHMgb24gcHIgdG8gcnVuIHNldHVwCjMuIElmIHVzZXIgZXhpc3RzLCBhZGQgbmV3IGNvbnRyaWJ1dGlvbiwgaWYgbm90IGFkZCB1c2VyIGFuZCBhZGQgY29udHJpYnV0aW9uCgoKIyMgQ29udHJpYnV0aW5nCklmIHlvdSBoYXZlIHN1Z2dlc3Rpb25zIGZvciBob3cgdGhlIEFsbENvbnRyaWJ1dG9yc0JvdCBjb3VsZCBiZSBpbXByb3ZlZCwgb3Igd2FudCB0byByZXBvcnQgYSBidWcsIFtvcGVuIGFuIGlzc3VlXShodHRwczovL2dpdGh1Yi5jb20vYWxsLWNvbnRyaWJ1dG9ycy9hbGwtY29udHJpYnV0b3JzLWJvdC9pc3N1ZXMpIQoKRm9yIG1vcmUsIGNoZWNrIG91dCB0aGUgW0NvbnRyaWJ1dGluZyBHdWlkZV0oQ09OVFJJQlVUSU5HLm1kKS4KCiMjIENvbnRyaWJ1dG9ycwoKVGhhbmtzIGdvZXMgdG8gdGhlc2Ugd29uZGVyZnVsIHBlb3BsZSAoW2Vtb2ppIGtleV0oaHR0cHM6Ly9naXRodWIuY29tL2FsbC1jb250cmlidXRvcnMvYWxsLWNvbnRyaWJ1dG9ycyNlbW9qaS1rZXkpKToKCjwhLS0gQUxMLUNPTlRSSUJVVE9SUy1MSVNUOlNUQVJUIC0gRG8gbm90IHJlbW92ZSBvciBtb2RpZnkgdGhpcyBzZWN0aW9uIC0tPgo8IS0tIHByZXR0aWVyLWlnbm9yZSAtLT4KfCBbPGltZyBzcmM9Imh0dHBzOi8vYXZhdGFyczIuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMzUzNDIzNj92PTQiIHdpZHRoPSIxMDBweDsiLz48YnIgLz48c3ViPjxiPkpha2UgQm9sYW08L2I+PC9zdWI+XShodHRwczovL2pha2Vib2xhbS5jb20pPGJyIC8+W/CfkrtdKGh0dHBzOi8vZ2l0aHViLmNvbS9hbGwtY29udHJpYnR1b3JzL2JvdC9jb21taXRzP2F1dGhvcj1qYWtlYm9sYW0gIkNvZGUiKSBb8J+ah10oI2luZnJhLWpha2Vib2xhbSAiSW5mcmFzdHJ1Y3R1cmUgKEhvc3RpbmcsIEJ1aWxkLVRvb2xzLCBldGMpIikgfAp8IDotLS06IHwKPCEtLSBBTEwtQ09OVFJJQlVUT1JTLUxJU1Q6RU5EIC0tPgoKVGhpcyBwcm9qZWN0IGZvbGxvd3MgdGhlIFthbGwtY29udHJpYnV0b3JzXShodHRwczovL2dpdGh1Yi5jb20vYWxsLWNvbnRyaWJ1dG9ycy9hbGwtY29udHJpYnV0b3JzKSBzcGVjaWZpY2F0aW9uLiBDb250cmlidXRpb25zIG9mIGFueSBraW5kIHdlbGNvbWUKCiMjIExJQ0VOU0UKCltNSVRdKExJQ0VOU0UpCg==", "message": "docs: update README.md", "sha": "bfce087f5fbed22257de1ee5056b20de63da0a13", } @@ -53,7 +53,7 @@ Object { exports[`All Contributors app - End to end Happy path, add correct new contributor 3`] = ` Object { "branch": "all-contributors/add-jakebolam", - "content": "ewogICJwcm9qZWN0TmFtZSI6ICJib3QiLAogICJwcm9qZWN0T3duZXIiOiAiYWxsLWNvbnRyaWJ0dW9ycyIsCiAgInJlcG9UeXBlIjogImdpdGh1YiIsCiAgInJlcG9Ib3N0IjogImh0dHBzOi8vZ2l0aHViLmNvbSIsCiAgImZpbGVzIjogWwogICAgIlJFQURNRS5tZCIKICBdLAogICJpbWFnZVNpemUiOiAxMDAsCiAgImNvbW1pdCI6IGZhbHNlLAogICJjb250cmlidXRvcnMiOiBbCiAgICB7CiAgICAgICJsb2dpbiI6ICJqYWtlYm9sYW0iLAogICAgICAibmFtZSI6ICJKYWtlIEJvbGFtIiwKICAgICAgImF2YXRhcl91cmwiOiAiaHR0cHM6Ly9hdmF0YXJzMi5naXRodWJ1c2VyY29udGVudC5jb20vdS8zNTM0MjM2P3Y9NCIsCiAgICAgICJwcm9maWxlIjogImh0dHBzOi8vamFrZWJvbGFtLmNvbSIsCiAgICAgICJjb250cmlidXRpb25zIjogWwogICAgICAgICJjb2RlIiwKICAgICAgICAiaW5mcmEiCiAgICAgIF0KICAgIH0KICBdCn0K", + "content": "ewogICJwcm9qZWN0TmFtZSI6ICJib3QiLAogICJwcm9qZWN0T3duZXIiOiAiYWxsLWNvbnRyaWJ0dW9ycyIsCiAgInJlcG9UeXBlIjogImdpdGh1YiIsCiAgInJlcG9Ib3N0IjogImh0dHBzOi8vZ2l0aHViLmNvbSIsCiAgImZpbGVzIjogWwogICAgIlJFQURNRS5tZCIKICBdLAogICJpbWFnZVNpemUiOiAxMDAsCiAgImNvbW1pdCI6IGZhbHNlLAogICJjb250cmlidXRvcnMiOiBbCiAgICB7CiAgICAgICJsb2dpbiI6ICJqYWtlYm9sYW0iLAogICAgICAibmFtZSI6ICJKYWtlIEJvbGFtIiwKICAgICAgImF2YXRhcl91cmwiOiAiaHR0cHM6Ly9hdmF0YXJzMi5naXRodWJ1c2VyY29udGVudC5jb20vdS8zNTM0MjM2P3Y9NCIsCiAgICAgICJwcm9maWxlIjogImh0dHBzOi8vamFrZWJvbGFtLmNvbSIsCiAgICAgICJjb250cmlidXRpb25zIjogWwogICAgICAgICJjb2RlIiwKICAgICAgICAiaW5mcmEiCiAgICAgIF0KICAgIH0KICBdLAogICJjb250cmlidXRvcnNQZXJMaW5lIjogNwp9Cg==", "message": "docs: update .all-contributorsrc", "sha": "dff34f715bca51114c0336a49381456a926806d5", }