├── .github └── workflows │ └── node.js.yml ├── .gitignore ├── CODE_OF_CONDUCT.md ├── LICENSE ├── README.md ├── action.yml ├── dist └── index.js ├── index.js ├── package-lock.json └── package.json /.github/workflows/node.js.yml: -------------------------------------------------------------------------------- 1 | name: CI 2 | 3 | on: [push, pull_request] 4 | 5 | jobs: 6 | build: 7 | name: Generate build and check code formatting 8 | 9 | runs-on: ubuntu-latest 10 | 11 | steps: 12 | - uses: actions/checkout@v2 13 | - name: Use Node.js 12.x 14 | uses: actions/setup-node@v1 15 | with: 16 | node-version: 12 17 | - run: npm ci 18 | - run: npm run format:check 19 | - run: npm run build 20 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | -------------------------------------------------------------------------------- /CODE_OF_CONDUCT.md: -------------------------------------------------------------------------------- 1 | # Contributor Covenant Code of Conduct 2 | 3 | ## Our Pledge 4 | 5 | In the interest of fostering an open and welcoming environment, we as 6 | contributors and maintainers pledge to making participation in our project and 7 | our community a harassment-free experience for everyone, regardless of age, body 8 | size, disability, ethnicity, sex characteristics, gender identity and expression, 9 | level of experience, education, socio-economic status, nationality, personal 10 | appearance, race, religion, or sexual identity and orientation. 11 | 12 | ## Our Standards 13 | 14 | Examples of behavior that contributes to creating a positive environment 15 | include: 16 | 17 | * Using welcoming and inclusive language 18 | * Being respectful of differing viewpoints and experiences 19 | * Gracefully accepting constructive criticism 20 | * Focusing on what is best for the community 21 | * Showing empathy towards other community members 22 | 23 | Examples of unacceptable behavior by participants include: 24 | 25 | * The use of sexualized language or imagery and unwelcome sexual attention or 26 | advances 27 | * Trolling, insulting/derogatory comments, and personal or political attacks 28 | * Public or private harassment 29 | * Publishing others' private information, such as a physical or electronic 30 | address, without explicit permission 31 | * Other conduct which could reasonably be considered inappropriate in a 32 | professional setting 33 | 34 | ## Our Responsibilities 35 | 36 | Project maintainers are responsible for clarifying the standards of acceptable 37 | behavior and are expected to take appropriate and fair corrective action in 38 | response to any instances of unacceptable behavior. 39 | 40 | Project maintainers have the right and responsibility to remove, edit, or 41 | reject comments, commits, code, wiki edits, issues, and other contributions 42 | that are not aligned to this Code of Conduct, or to ban temporarily or 43 | permanently any contributor for other behaviors that they deem inappropriate, 44 | threatening, offensive, or harmful. 45 | 46 | ## Scope 47 | 48 | This Code of Conduct applies both within project spaces and in public spaces 49 | when an individual is representing the project or its community. Examples of 50 | representing a project or community include using an official project e-mail 51 | address, posting via an official social media account, or acting as an appointed 52 | representative at an online or offline event. Representation of a project may be 53 | further defined and clarified by project maintainers. 54 | 55 | ## Enforcement 56 | 57 | Instances of abusive, harassing, or otherwise unacceptable behavior may be 58 | reported by contacting the project team at jamesgeorge998001@gmail.com. All 59 | complaints will be reviewed and investigated and will result in a response that 60 | is deemed necessary and appropriate to the circumstances. The project team is 61 | obligated to maintain confidentiality with regard to the reporter of an incident. 62 | Further details of specific enforcement policies may be posted separately. 63 | 64 | Project maintainers who do not follow or enforce the Code of Conduct in good 65 | faith may face temporary or permanent repercussions as determined by other 66 | members of the project's leadership. 67 | 68 | ## Attribution 69 | 70 | This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, 71 | available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html 72 | 73 | [homepage]: https://www.contributor-covenant.org 74 | 75 | For answers to common questions about this code of conduct, see 76 | https://www.contributor-covenant.org/faq 77 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2020 James George 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # GitHub Activity in Readme 2 | 3 | Updates `README.md` with the recent GitHub activity of a user. 4 | 5 | profile-repo 6 | 7 | --- 8 | 9 | ## Instructions 10 | 11 | - Add the comment `` (entry point) within `README.md`. You can find an example [here](https://github.com/jamesgeorge007/jamesgeorge007/blob/master/README.md). 12 | 13 | - It's the time to create a workflow file. 14 | 15 | `.github/workflows/update-readme.yml` 16 | 17 | ```yml 18 | name: Update README 19 | 20 | on: 21 | schedule: 22 | - cron: '*/30 * * * *' 23 | workflow_dispatch: 24 | 25 | jobs: 26 | build: 27 | runs-on: ubuntu-latest 28 | name: Update this repo's README with recent activity 29 | 30 | steps: 31 | - uses: actions/checkout@v2 32 | - uses: jamesgeorge007/github-activity-readme@master 33 | env: 34 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 35 | ``` 36 | 37 | The above job runs every half an hour, you can change it as you wish based on the [cron syntax](https://jasonet.co/posts/scheduled-actions/#the-cron-syntax). 38 | 39 | Please note that only those public events that belong to the following list show up:- 40 | 41 | - `IssueEvent` 42 | - `IssueCommentEvent` 43 | - `PullRequestEvent` 44 | 45 | You can find an example [here](https://github.com/jamesgeorge007/jamesgeorge007/blob/master/.github/workflows/update-readme.yml). 46 | 47 | ### Override defaults 48 | 49 | Use the following `input params` to customize it for your use case:- 50 | 51 | | Input Param | Default Value | Description | 52 | |--------|--------|--------| 53 | | `COMMIT_MSG` | :zap: Update README with the recent activity | Commit message used while committing to the repo | 54 | | `MAX_LINES` | 5 | The maximum number of lines populated in your readme file | 55 | 56 | 57 | ```yml 58 | name: Update README 59 | 60 | on: 61 | schedule: 62 | - cron: '*/30 * * * *' 63 | workflow_dispatch: 64 | 65 | jobs: 66 | build: 67 | runs-on: ubuntu-latest 68 | name: Update this repo's README with recent activity 69 | 70 | steps: 71 | - uses: actions/checkout@v2 72 | - uses: jamesgeorge007/github-activity-readme@master 73 | env: 74 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 75 | with: 76 | COMMIT_MSG: 'Specify a custom commit message' 77 | MAX_LINES: 10 78 | ``` 79 | 80 | _Inspired by [JasonEtco/activity-box](https://github.com/JasonEtco/activity-box)_ 81 | -------------------------------------------------------------------------------- /action.yml: -------------------------------------------------------------------------------- 1 | name: GitHub - Activity - Readme 2 | description: Updates README with the recent GitHub activity of a user 3 | author: jamesgeorge007 4 | 5 | inputs: 6 | GH_USERNAME: 7 | description: 'Your GitHub username' 8 | default: ${{ github.repository_owner }} 9 | required: false 10 | COMMIT_MSG: 11 | description: "Commit message used while committing to the repo" 12 | default: ":zap: Update README with the recent activity" 13 | required: false 14 | MAX_LINES: 15 | description: "The maximum number of lines populated in your readme file" 16 | default: 5 17 | required: false 18 | 19 | branding: 20 | color: yellow 21 | icon: activity 22 | 23 | runs: 24 | using: node12 25 | main: dist/index.js 26 | -------------------------------------------------------------------------------- /index.js: -------------------------------------------------------------------------------- 1 | const core = require("@actions/core"); 2 | const fs = require("fs"); 3 | const path = require("path"); 4 | const { spawn } = require("child_process"); 5 | const { Toolkit } = require("actions-toolkit"); 6 | 7 | // Get config 8 | const GH_USERNAME = core.getInput("GH_USERNAME"); 9 | const COMMIT_MSG = core.getInput("COMMIT_MSG"); 10 | const MAX_LINES = core.getInput("MAX_LINES"); 11 | /** 12 | * Returns the sentence case representation 13 | * @param {String} str - the string 14 | * 15 | * @returns {String} 16 | */ 17 | 18 | const capitalize = (str) => str.slice(0, 1).toUpperCase() + str.slice(1); 19 | 20 | const urlPrefix = "https://github.com"; 21 | 22 | /** 23 | * Returns a URL in markdown format for PR's and issues 24 | * @param {Object | String} item - holds information concerning the issue/PR 25 | * 26 | * @returns {String} 27 | */ 28 | 29 | const toUrlFormat = (item) => { 30 | if (typeof item === "object") { 31 | return Object.hasOwnProperty.call(item.payload, "issue") 32 | ? `[#${item.payload.issue.number}](${urlPrefix}/${item.repo.name}/issues/${item.payload.issue.number})` 33 | : `[#${item.payload.pull_request.number}](${urlPrefix}/${item.repo.name}/pull/${item.payload.pull_request.number})`; 34 | } 35 | return `[${item}](${urlPrefix}/${item})`; 36 | }; 37 | 38 | /** 39 | * Execute shell command 40 | * @param {String} cmd - root command 41 | * @param {String[]} args - args to be passed along with 42 | * 43 | * @returns {Promise} 44 | */ 45 | 46 | const exec = (cmd, args = []) => 47 | new Promise((resolve, reject) => { 48 | const app = spawn(cmd, args, { stdio: "pipe" }); 49 | let stdout = ""; 50 | app.stdout.on("data", (data) => { 51 | stdout = data; 52 | }); 53 | app.on("close", (code) => { 54 | if (code !== 0 && !stdout.includes("nothing to commit")) { 55 | err = new Error(`Invalid status code: ${code}`); 56 | err.code = code; 57 | return reject(err); 58 | } 59 | return resolve(code); 60 | }); 61 | app.on("error", reject); 62 | }); 63 | 64 | /** 65 | * Make a commit 66 | * 67 | * @returns {Promise} 68 | */ 69 | 70 | const commitFile = async () => { 71 | await exec("git", [ 72 | "config", 73 | "--global", 74 | "user.email", 75 | "41898282+github-actions[bot]@users.noreply.github.com", 76 | ]); 77 | await exec("git", ["config", "--global", "user.name", "readme-bot"]); 78 | await exec("git", ["add", "README.md"]); 79 | await exec("git", ["commit", "-m", COMMIT_MSG]); 80 | await exec("git", ["push"]); 81 | }; 82 | 83 | const serializers = { 84 | IssueCommentEvent: (item) => { 85 | return `🗣 Commented on ${toUrlFormat(item)} in ${toUrlFormat( 86 | item.repo.name 87 | )}`; 88 | }, 89 | IssuesEvent: (item) => { 90 | return `❗️ ${capitalize(item.payload.action)} issue ${toUrlFormat( 91 | item 92 | )} in ${toUrlFormat(item.repo.name)}`; 93 | }, 94 | PullRequestEvent: (item) => { 95 | const emoji = item.payload.action === "opened" ? "💪" : "❌"; 96 | const line = item.payload.pull_request.merged 97 | ? "🎉 Merged" 98 | : `${emoji} ${capitalize(item.payload.action)}`; 99 | return `${line} PR ${toUrlFormat(item)} in ${toUrlFormat(item.repo.name)}`; 100 | }, 101 | }; 102 | 103 | Toolkit.run( 104 | async (tools) => { 105 | // Get the user's public events 106 | tools.log.debug(`Getting activity for ${GH_USERNAME}`); 107 | const events = await tools.github.activity.listPublicEventsForUser({ 108 | username: GH_USERNAME, 109 | per_page: 100, 110 | }); 111 | tools.log.debug( 112 | `Activity for ${GH_USERNAME}, ${events.data.length} events found.` 113 | ); 114 | 115 | const content = events.data 116 | // Filter out any boring activity 117 | .filter((event) => serializers.hasOwnProperty(event.type)) 118 | // We only have five lines to work with 119 | .slice(0, MAX_LINES) 120 | // Call the serializer to construct a string 121 | .map((item) => serializers[item.type](item)); 122 | 123 | const readmeContent = fs.readFileSync("./README.md", "utf-8").split("\n"); 124 | 125 | // Find the index corresponding to comment 126 | let startIdx = readmeContent.findIndex( 127 | (content) => content.trim() === "" 128 | ); 129 | 130 | // Early return in case the comment was not found 131 | if (startIdx === -1) { 132 | return tools.exit.failure( 133 | `Couldn't find the comment. Exiting!` 134 | ); 135 | } 136 | 137 | // Find the index corresponding to comment 138 | const endIdx = readmeContent.findIndex( 139 | (content) => content.trim() === "" 140 | ); 141 | 142 | if (!content.length) { 143 | tools.exit.failure("No PullRequest/Issue/IssueComment events found"); 144 | } 145 | 146 | if (content.length < 5) { 147 | tools.log.info("Found less than 5 activities"); 148 | } 149 | 150 | if (startIdx !== -1 && endIdx === -1) { 151 | // Add one since the content needs to be inserted just after the initial comment 152 | startIdx++; 153 | content.forEach((line, idx) => 154 | readmeContent.splice(startIdx + idx, 0, `${idx + 1}. ${line}`) 155 | ); 156 | 157 | // Append comment 158 | readmeContent.splice( 159 | startIdx + content.length, 160 | 0, 161 | "" 162 | ); 163 | 164 | // Update README 165 | fs.writeFileSync("./README.md", readmeContent.join("\n")); 166 | 167 | // Commit to the remote repository 168 | try { 169 | await commitFile(); 170 | } catch (err) { 171 | tools.log.debug("Something went wrong"); 172 | return tools.exit.failure(err); 173 | } 174 | tools.exit.success("Wrote to README"); 175 | } 176 | 177 | const oldContent = readmeContent.slice(startIdx + 1, endIdx).join("\n"); 178 | const newContent = content 179 | .map((line, idx) => `${idx + 1}. ${line}`) 180 | .join("\n"); 181 | 182 | if (oldContent.trim() === newContent.trim()) 183 | tools.exit.success("No changes detected"); 184 | 185 | startIdx++; 186 | 187 | // Recent GitHub Activity content between the comments 188 | const readmeActivitySection = readmeContent.slice(startIdx, endIdx); 189 | if (!readmeActivitySection.length) { 190 | content.some((line, idx) => { 191 | // User doesn't have 5 public events 192 | if (!line) { 193 | return true; 194 | } 195 | readmeContent.splice(startIdx + idx, 0, `${idx + 1}. ${line}`); 196 | }); 197 | tools.log.success("Wrote to README"); 198 | } else { 199 | // It is likely that a newline is inserted after the comment (code formatter) 200 | let count = 0; 201 | 202 | readmeActivitySection.some((line, idx) => { 203 | // User doesn't have 5 public events 204 | if (!content[count]) { 205 | return true; 206 | } 207 | if (line !== "") { 208 | readmeContent[startIdx + idx] = `${count + 1}. ${content[count]}`; 209 | count++; 210 | } 211 | }); 212 | tools.log.success("Updated README with the recent activity"); 213 | } 214 | 215 | // Update README 216 | fs.writeFileSync("./README.md", readmeContent.join("\n")); 217 | 218 | // Commit to the remote repository 219 | try { 220 | await commitFile(); 221 | } catch (err) { 222 | tools.log.debug("Something went wrong"); 223 | return tools.exit.failure(err); 224 | } 225 | tools.exit.success("Pushed to remote repository"); 226 | }, 227 | { 228 | event: ["schedule", "workflow_dispatch"], 229 | secrets: ["GITHUB_TOKEN"], 230 | } 231 | ); 232 | -------------------------------------------------------------------------------- /package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "github-activity-readme", 3 | "version": "0.3.6", 4 | "lockfileVersion": 1, 5 | "requires": true, 6 | "dependencies": { 7 | "@actions/core": { 8 | "version": "1.2.6", 9 | "resolved": "https://registry.npmjs.org/@actions/core/-/core-1.2.6.tgz", 10 | "integrity": "sha512-ZQYitnqiyBc3D+k7LsgSBmMDVkOVidaagDG7j3fOym77jNunWRuYx7VSHa9GNfFZh+zh61xsCjRj4JxMZlDqTA==" 11 | }, 12 | "@actions/exec": { 13 | "version": "1.0.4", 14 | "resolved": "https://registry.npmjs.org/@actions/exec/-/exec-1.0.4.tgz", 15 | "integrity": "sha512-4DPChWow9yc9W3WqEbUj8Nr86xkpyE29ZzWjXucHItclLbEW6jr80Zx4nqv18QL6KK65+cifiQZXvnqgTV6oHw==", 16 | "requires": { 17 | "@actions/io": "^1.0.1" 18 | } 19 | }, 20 | "@actions/io": { 21 | "version": "1.0.2", 22 | "resolved": "https://registry.npmjs.org/@actions/io/-/io-1.0.2.tgz", 23 | "integrity": "sha512-J8KuFqVPr3p6U8W93DOXlXW6zFvrQAJANdS+vw0YhusLIq+bszW8zmK2Fh1C2kDPX8FMvwIl1OUcFgvJoXLbAg==" 24 | }, 25 | "@octokit/auth-token": { 26 | "version": "2.4.2", 27 | "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-2.4.2.tgz", 28 | "integrity": "sha512-jE/lE/IKIz2v1+/P0u4fJqv0kYwXOTujKemJMFr6FeopsxlIK3+wKDCJGnysg81XID5TgZQbIfuJ5J0lnTiuyQ==", 29 | "requires": { 30 | "@octokit/types": "^5.0.0" 31 | } 32 | }, 33 | "@octokit/core": { 34 | "version": "2.5.4", 35 | "resolved": "https://registry.npmjs.org/@octokit/core/-/core-2.5.4.tgz", 36 | "integrity": "sha512-HCp8yKQfTITYK+Nd09MHzAlP1v3Ii/oCohv0/TW9rhSLvzb98BOVs2QmVYuloE6a3l6LsfyGIwb6Pc4ycgWlIQ==", 37 | "requires": { 38 | "@octokit/auth-token": "^2.4.0", 39 | "@octokit/graphql": "^4.3.1", 40 | "@octokit/request": "^5.4.0", 41 | "@octokit/types": "^5.0.0", 42 | "before-after-hook": "^2.1.0", 43 | "universal-user-agent": "^5.0.0" 44 | } 45 | }, 46 | "@octokit/endpoint": { 47 | "version": "6.0.3", 48 | "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-6.0.3.tgz", 49 | "integrity": "sha512-Y900+r0gIz+cWp6ytnkibbD95ucEzDSKzlEnaWS52hbCDNcCJYO5mRmWW7HRAnDc7am+N/5Lnd8MppSaTYx1Yg==", 50 | "requires": { 51 | "@octokit/types": "^5.0.0", 52 | "is-plain-object": "^3.0.0", 53 | "universal-user-agent": "^5.0.0" 54 | } 55 | }, 56 | "@octokit/graphql": { 57 | "version": "4.5.1", 58 | "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-4.5.1.tgz", 59 | "integrity": "sha512-qgMsROG9K2KxDs12CO3bySJaYoUu2aic90qpFrv7A8sEBzZ7UFGvdgPKiLw5gOPYEYbS0Xf8Tvf84tJutHPulQ==", 60 | "requires": { 61 | "@octokit/request": "^5.3.0", 62 | "@octokit/types": "^5.0.0", 63 | "universal-user-agent": "^5.0.0" 64 | } 65 | }, 66 | "@octokit/plugin-paginate-rest": { 67 | "version": "2.2.3", 68 | "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-2.2.3.tgz", 69 | "integrity": "sha512-eKTs91wXnJH8Yicwa30jz6DF50kAh7vkcqCQ9D7/tvBAP5KKkg6I2nNof8Mp/65G0Arjsb4QcOJcIEQY+rK1Rg==", 70 | "requires": { 71 | "@octokit/types": "^5.0.0" 72 | } 73 | }, 74 | "@octokit/plugin-request-log": { 75 | "version": "1.0.0", 76 | "resolved": "https://registry.npmjs.org/@octokit/plugin-request-log/-/plugin-request-log-1.0.0.tgz", 77 | "integrity": "sha512-ywoxP68aOT3zHCLgWZgwUJatiENeHE7xJzYjfz8WI0goynp96wETBF+d95b8g/uL4QmS6owPVlaxiz3wyMAzcw==" 78 | }, 79 | "@octokit/plugin-rest-endpoint-methods": { 80 | "version": "3.17.0", 81 | "resolved": "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-3.17.0.tgz", 82 | "integrity": "sha512-NFV3vq7GgoO2TrkyBRUOwflkfTYkFKS0tLAPym7RNpkwLCttqShaEGjthOsPEEL+7LFcYv3mU24+F2yVd3npmg==", 83 | "requires": { 84 | "@octokit/types": "^4.1.6", 85 | "deprecation": "^2.3.1" 86 | }, 87 | "dependencies": { 88 | "@octokit/types": { 89 | "version": "4.1.10", 90 | "resolved": "https://registry.npmjs.org/@octokit/types/-/types-4.1.10.tgz", 91 | "integrity": "sha512-/wbFy1cUIE5eICcg0wTKGXMlKSbaAxEr00qaBXzscLXpqhcwgXeS6P8O0pkysBhRfyjkKjJaYrvR1ExMO5eOXQ==", 92 | "requires": { 93 | "@types/node": ">= 8" 94 | } 95 | } 96 | } 97 | }, 98 | "@octokit/request": { 99 | "version": "5.4.5", 100 | "resolved": "https://registry.npmjs.org/@octokit/request/-/request-5.4.5.tgz", 101 | "integrity": "sha512-atAs5GAGbZedvJXXdjtKljin+e2SltEs48B3naJjqWupYl2IUBbB/CJisyjbNHcKpHzb3E+OYEZ46G8eakXgQg==", 102 | "requires": { 103 | "@octokit/endpoint": "^6.0.1", 104 | "@octokit/request-error": "^2.0.0", 105 | "@octokit/types": "^5.0.0", 106 | "deprecation": "^2.0.0", 107 | "is-plain-object": "^3.0.0", 108 | "node-fetch": "^2.3.0", 109 | "once": "^1.4.0", 110 | "universal-user-agent": "^5.0.0" 111 | } 112 | }, 113 | "@octokit/request-error": { 114 | "version": "2.0.2", 115 | "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-2.0.2.tgz", 116 | "integrity": "sha512-2BrmnvVSV1MXQvEkrb9zwzP0wXFNbPJij922kYBTLIlIafukrGOb+ABBT2+c6wZiuyWDH1K1zmjGQ0toN/wMWw==", 117 | "requires": { 118 | "@octokit/types": "^5.0.1", 119 | "deprecation": "^2.0.0", 120 | "once": "^1.4.0" 121 | } 122 | }, 123 | "@octokit/rest": { 124 | "version": "17.11.2", 125 | "resolved": "https://registry.npmjs.org/@octokit/rest/-/rest-17.11.2.tgz", 126 | "integrity": "sha512-4jTmn8WossTUaLfNDfXk4fVJgbz5JgZE8eCs4BvIb52lvIH8rpVMD1fgRCrHbSd6LRPE5JFZSfAEtszrOq3ZFQ==", 127 | "requires": { 128 | "@octokit/core": "^2.4.3", 129 | "@octokit/plugin-paginate-rest": "^2.2.0", 130 | "@octokit/plugin-request-log": "^1.0.0", 131 | "@octokit/plugin-rest-endpoint-methods": "3.17.0" 132 | } 133 | }, 134 | "@octokit/types": { 135 | "version": "5.1.0", 136 | "resolved": "https://registry.npmjs.org/@octokit/types/-/types-5.1.0.tgz", 137 | "integrity": "sha512-OFxUBgrEllAbdEmWp/wNmKIu5EuumKHG4sgy56vjZ8lXPgMhF05c76hmulfOdFHHYRpPj49ygOZJ8wgVsPecuA==", 138 | "requires": { 139 | "@types/node": ">= 8" 140 | } 141 | }, 142 | "@types/flat-cache": { 143 | "version": "2.0.0", 144 | "resolved": "https://registry.npmjs.org/@types/flat-cache/-/flat-cache-2.0.0.tgz", 145 | "integrity": "sha512-fHeEsm9hvmZ+QHpw6Fkvf19KIhuqnYLU6vtWLjd5BsMd/qVi7iTkMioDZl0mQmfNRA1A6NwvhrSRNr9hGYZGww==" 146 | }, 147 | "@types/minimist": { 148 | "version": "1.2.0", 149 | "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.0.tgz", 150 | "integrity": "sha1-aaI6OtKcrwCX8G7aWbNh7i8GOfY=" 151 | }, 152 | "@types/node": { 153 | "version": "14.0.23", 154 | "resolved": "https://registry.npmjs.org/@types/node/-/node-14.0.23.tgz", 155 | "integrity": "sha512-Z4U8yDAl5TFkmYsZdFPdjeMa57NOvnaf1tljHzhouaPEp7LCj2JKkejpI1ODviIAQuW4CcQmxkQ77rnLsOOoKw==" 156 | }, 157 | "@types/signale": { 158 | "version": "1.4.1", 159 | "resolved": "https://registry.npmjs.org/@types/signale/-/signale-1.4.1.tgz", 160 | "integrity": "sha512-05d9fUDqRnt36rizLgo38SbPTrkMzdhXpvSHSAhxzokgIUPGNUoXHV0zYjPpTd4IryDADJ0mGHpfJ/Yhjyh9JQ==", 161 | "requires": { 162 | "@types/node": "*" 163 | } 164 | }, 165 | "@zeit/ncc": { 166 | "version": "0.22.3", 167 | "resolved": "https://registry.npmjs.org/@zeit/ncc/-/ncc-0.22.3.tgz", 168 | "integrity": "sha512-jnCLpLXWuw/PAiJiVbLjA8WBC0IJQbFeUwF4I9M+23MvIxTxk5pD4Q8byQBSPmHQjz5aBoA7AKAElQxMpjrCLQ==", 169 | "dev": true 170 | }, 171 | "actions-toolkit": { 172 | "version": "5.0.0", 173 | "resolved": "https://registry.npmjs.org/actions-toolkit/-/actions-toolkit-5.0.0.tgz", 174 | "integrity": "sha512-5a8awmbCWGh6R8TIVFmV/gQj3VCR++uqCbPzbrcl3JN/7NRdbF0kAPFAl52iUIvtnz734E0jNNLuZ+x766Os5Q==", 175 | "requires": { 176 | "@actions/core": "^1.2.4", 177 | "@actions/exec": "^1.0.4", 178 | "@octokit/rest": "^17.9.0", 179 | "@types/flat-cache": "^2.0.0", 180 | "@types/minimist": "^1.2.0", 181 | "@types/signale": "^1.4.1", 182 | "enquirer": "^2.3.5", 183 | "minimist": "^1.2.5", 184 | "signale": "^1.4.0" 185 | } 186 | }, 187 | "ansi-colors": { 188 | "version": "4.1.1", 189 | "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", 190 | "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==" 191 | }, 192 | "ansi-styles": { 193 | "version": "3.2.1", 194 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", 195 | "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", 196 | "requires": { 197 | "color-convert": "^1.9.0" 198 | } 199 | }, 200 | "before-after-hook": { 201 | "version": "2.1.0", 202 | "resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.1.0.tgz", 203 | "integrity": "sha512-IWIbu7pMqyw3EAJHzzHbWa85b6oud/yfKYg5rqB5hNE8CeMi3nX+2C2sj0HswfblST86hpVEOAb9x34NZd6P7A==" 204 | }, 205 | "chalk": { 206 | "version": "2.4.2", 207 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", 208 | "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", 209 | "requires": { 210 | "ansi-styles": "^3.2.1", 211 | "escape-string-regexp": "^1.0.5", 212 | "supports-color": "^5.3.0" 213 | } 214 | }, 215 | "color-convert": { 216 | "version": "1.9.3", 217 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", 218 | "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", 219 | "requires": { 220 | "color-name": "1.1.3" 221 | } 222 | }, 223 | "color-name": { 224 | "version": "1.1.3", 225 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", 226 | "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" 227 | }, 228 | "cross-spawn": { 229 | "version": "6.0.5", 230 | "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", 231 | "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", 232 | "requires": { 233 | "nice-try": "^1.0.4", 234 | "path-key": "^2.0.1", 235 | "semver": "^5.5.0", 236 | "shebang-command": "^1.2.0", 237 | "which": "^1.2.9" 238 | } 239 | }, 240 | "deprecation": { 241 | "version": "2.3.1", 242 | "resolved": "https://registry.npmjs.org/deprecation/-/deprecation-2.3.1.tgz", 243 | "integrity": "sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==" 244 | }, 245 | "end-of-stream": { 246 | "version": "1.4.4", 247 | "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", 248 | "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", 249 | "requires": { 250 | "once": "^1.4.0" 251 | } 252 | }, 253 | "enquirer": { 254 | "version": "2.3.6", 255 | "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", 256 | "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", 257 | "requires": { 258 | "ansi-colors": "^4.1.1" 259 | } 260 | }, 261 | "error-ex": { 262 | "version": "1.3.2", 263 | "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", 264 | "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", 265 | "requires": { 266 | "is-arrayish": "^0.2.1" 267 | } 268 | }, 269 | "escape-string-regexp": { 270 | "version": "1.0.5", 271 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", 272 | "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" 273 | }, 274 | "execa": { 275 | "version": "1.0.0", 276 | "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", 277 | "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", 278 | "requires": { 279 | "cross-spawn": "^6.0.0", 280 | "get-stream": "^4.0.0", 281 | "is-stream": "^1.1.0", 282 | "npm-run-path": "^2.0.0", 283 | "p-finally": "^1.0.0", 284 | "signal-exit": "^3.0.0", 285 | "strip-eof": "^1.0.0" 286 | } 287 | }, 288 | "figures": { 289 | "version": "2.0.0", 290 | "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", 291 | "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", 292 | "requires": { 293 | "escape-string-regexp": "^1.0.5" 294 | } 295 | }, 296 | "find-up": { 297 | "version": "2.1.0", 298 | "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", 299 | "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", 300 | "requires": { 301 | "locate-path": "^2.0.0" 302 | } 303 | }, 304 | "get-stream": { 305 | "version": "4.1.0", 306 | "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", 307 | "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", 308 | "requires": { 309 | "pump": "^3.0.0" 310 | } 311 | }, 312 | "graceful-fs": { 313 | "version": "4.2.4", 314 | "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", 315 | "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==" 316 | }, 317 | "has-flag": { 318 | "version": "3.0.0", 319 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", 320 | "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" 321 | }, 322 | "is-arrayish": { 323 | "version": "0.2.1", 324 | "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", 325 | "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" 326 | }, 327 | "is-plain-object": { 328 | "version": "3.0.1", 329 | "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-3.0.1.tgz", 330 | "integrity": "sha512-Xnpx182SBMrr/aBik8y+GuR4U1L9FqMSojwDQwPMmxyC6bvEqly9UBCxhauBF5vNh2gwWJNX6oDV7O+OM4z34g==" 331 | }, 332 | "is-stream": { 333 | "version": "1.1.0", 334 | "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", 335 | "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" 336 | }, 337 | "isexe": { 338 | "version": "2.0.0", 339 | "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", 340 | "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" 341 | }, 342 | "json-parse-better-errors": { 343 | "version": "1.0.2", 344 | "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", 345 | "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==" 346 | }, 347 | "load-json-file": { 348 | "version": "4.0.0", 349 | "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", 350 | "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", 351 | "requires": { 352 | "graceful-fs": "^4.1.2", 353 | "parse-json": "^4.0.0", 354 | "pify": "^3.0.0", 355 | "strip-bom": "^3.0.0" 356 | } 357 | }, 358 | "locate-path": { 359 | "version": "2.0.0", 360 | "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", 361 | "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", 362 | "requires": { 363 | "p-locate": "^2.0.0", 364 | "path-exists": "^3.0.0" 365 | } 366 | }, 367 | "macos-release": { 368 | "version": "2.4.0", 369 | "resolved": "https://registry.npmjs.org/macos-release/-/macos-release-2.4.0.tgz", 370 | "integrity": "sha512-ko6deozZYiAkqa/0gmcsz+p4jSy3gY7/ZsCEokPaYd8k+6/aXGkiTgr61+Owup7Sf+xjqW8u2ElhoM9SEcEfuA==" 371 | }, 372 | "minimist": { 373 | "version": "1.2.5", 374 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", 375 | "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" 376 | }, 377 | "nice-try": { 378 | "version": "1.0.5", 379 | "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", 380 | "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==" 381 | }, 382 | "node-fetch": { 383 | "version": "2.6.1", 384 | "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz", 385 | "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==" 386 | }, 387 | "npm-run-path": { 388 | "version": "2.0.2", 389 | "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", 390 | "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", 391 | "requires": { 392 | "path-key": "^2.0.0" 393 | } 394 | }, 395 | "once": { 396 | "version": "1.4.0", 397 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", 398 | "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", 399 | "requires": { 400 | "wrappy": "1" 401 | } 402 | }, 403 | "os-name": { 404 | "version": "3.1.0", 405 | "resolved": "https://registry.npmjs.org/os-name/-/os-name-3.1.0.tgz", 406 | "integrity": "sha512-h8L+8aNjNcMpo/mAIBPn5PXCM16iyPGjHNWo6U1YO8sJTMHtEtyczI6QJnLoplswm6goopQkqc7OAnjhWcugVg==", 407 | "requires": { 408 | "macos-release": "^2.2.0", 409 | "windows-release": "^3.1.0" 410 | } 411 | }, 412 | "p-finally": { 413 | "version": "1.0.0", 414 | "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", 415 | "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=" 416 | }, 417 | "p-limit": { 418 | "version": "1.3.0", 419 | "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", 420 | "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", 421 | "requires": { 422 | "p-try": "^1.0.0" 423 | } 424 | }, 425 | "p-locate": { 426 | "version": "2.0.0", 427 | "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", 428 | "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", 429 | "requires": { 430 | "p-limit": "^1.1.0" 431 | } 432 | }, 433 | "p-try": { 434 | "version": "1.0.0", 435 | "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", 436 | "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=" 437 | }, 438 | "parse-json": { 439 | "version": "4.0.0", 440 | "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", 441 | "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", 442 | "requires": { 443 | "error-ex": "^1.3.1", 444 | "json-parse-better-errors": "^1.0.1" 445 | } 446 | }, 447 | "path-exists": { 448 | "version": "3.0.0", 449 | "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", 450 | "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" 451 | }, 452 | "path-key": { 453 | "version": "2.0.1", 454 | "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", 455 | "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=" 456 | }, 457 | "pify": { 458 | "version": "3.0.0", 459 | "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", 460 | "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" 461 | }, 462 | "pkg-conf": { 463 | "version": "2.1.0", 464 | "resolved": "https://registry.npmjs.org/pkg-conf/-/pkg-conf-2.1.0.tgz", 465 | "integrity": "sha1-ISZRTKbyq/69FoWW3xi6V4Z/AFg=", 466 | "requires": { 467 | "find-up": "^2.0.0", 468 | "load-json-file": "^4.0.0" 469 | } 470 | }, 471 | "prettier": { 472 | "version": "2.0.5", 473 | "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.0.5.tgz", 474 | "integrity": "sha512-7PtVymN48hGcO4fGjybyBSIWDsLU4H4XlvOHfq91pz9kkGlonzwTfYkaIEwiRg/dAJF9YlbsduBAgtYLi+8cFg==", 475 | "dev": true 476 | }, 477 | "pump": { 478 | "version": "3.0.0", 479 | "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", 480 | "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", 481 | "requires": { 482 | "end-of-stream": "^1.1.0", 483 | "once": "^1.3.1" 484 | } 485 | }, 486 | "semver": { 487 | "version": "5.7.1", 488 | "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", 489 | "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" 490 | }, 491 | "shebang-command": { 492 | "version": "1.2.0", 493 | "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", 494 | "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", 495 | "requires": { 496 | "shebang-regex": "^1.0.0" 497 | } 498 | }, 499 | "shebang-regex": { 500 | "version": "1.0.0", 501 | "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", 502 | "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=" 503 | }, 504 | "signal-exit": { 505 | "version": "3.0.3", 506 | "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", 507 | "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==" 508 | }, 509 | "signale": { 510 | "version": "1.4.0", 511 | "resolved": "https://registry.npmjs.org/signale/-/signale-1.4.0.tgz", 512 | "integrity": "sha512-iuh+gPf28RkltuJC7W5MRi6XAjTDCAPC/prJUpQoG4vIP3MJZ+GTydVnodXA7pwvTKb2cA0m9OFZW/cdWy/I/w==", 513 | "requires": { 514 | "chalk": "^2.3.2", 515 | "figures": "^2.0.0", 516 | "pkg-conf": "^2.1.0" 517 | } 518 | }, 519 | "strip-bom": { 520 | "version": "3.0.0", 521 | "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", 522 | "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=" 523 | }, 524 | "strip-eof": { 525 | "version": "1.0.0", 526 | "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", 527 | "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=" 528 | }, 529 | "supports-color": { 530 | "version": "5.5.0", 531 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", 532 | "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", 533 | "requires": { 534 | "has-flag": "^3.0.0" 535 | } 536 | }, 537 | "universal-user-agent": { 538 | "version": "5.0.0", 539 | "resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-5.0.0.tgz", 540 | "integrity": "sha512-B5TPtzZleXyPrUMKCpEHFmVhMN6EhmJYjG5PQna9s7mXeSqGTLap4OpqLl5FCEFUI3UBmllkETwKf/db66Y54Q==", 541 | "requires": { 542 | "os-name": "^3.1.0" 543 | } 544 | }, 545 | "which": { 546 | "version": "1.3.1", 547 | "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", 548 | "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", 549 | "requires": { 550 | "isexe": "^2.0.0" 551 | } 552 | }, 553 | "windows-release": { 554 | "version": "3.3.1", 555 | "resolved": "https://registry.npmjs.org/windows-release/-/windows-release-3.3.1.tgz", 556 | "integrity": "sha512-Pngk/RDCaI/DkuHPlGTdIkDiTAnAkyMjoQMZqRsxydNl1qGXNIoZrB7RK8g53F2tEgQBMqQJHQdYZuQEEAu54A==", 557 | "requires": { 558 | "execa": "^1.0.0" 559 | } 560 | }, 561 | "wrappy": { 562 | "version": "1.0.2", 563 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", 564 | "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" 565 | } 566 | } 567 | } 568 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "github-activity-readme", 3 | "version": "0.3.6", 4 | "description": "Updates README with the recent GitHub activity of a user", 5 | "main": "index.js", 6 | "keywords": [], 7 | "author": "James George", 8 | "license": "MIT", 9 | "scripts": { 10 | "format:check": "prettier --check index.js", 11 | "format": "prettier --write index.js", 12 | "build": "ncc build index.js -o dist" 13 | }, 14 | "dependencies": { 15 | "@actions/core": "^1.2.6", 16 | "actions-toolkit": "^5.0.0" 17 | }, 18 | "devDependencies": { 19 | "@zeit/ncc": "^0.22.3", 20 | "prettier": "^2.0.5" 21 | } 22 | } 23 | --------------------------------------------------------------------------------