├── .github ├── dependabot.yml └── workflows │ ├── release.yml │ └── test.yml ├── .gitignore ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── LICENSE ├── README.md ├── action.yml ├── dist └── index.js ├── index.js ├── lib ├── app-octokit.js ├── app-stats.js └── octokit-plugin-stdout-progress.js ├── package-lock.json └── package.json /.github/dependabot.yml: -------------------------------------------------------------------------------- 1 | version: 2 2 | updates: 3 | - package-ecosystem: "npm" 4 | directory: "/" 5 | schedule: 6 | interval: "daily" 7 | -------------------------------------------------------------------------------- /.github/workflows/release.yml: -------------------------------------------------------------------------------- 1 | "on": 2 | push: 3 | branches: 4 | - main 5 | name: release 6 | jobs: 7 | release: 8 | name: release 9 | runs-on: ubuntu-latest 10 | steps: 11 | - uses: actions/checkout@v4 12 | - uses: actions/setup-node@v4 13 | with: 14 | node-version: lts/* 15 | - run: npm ci 16 | - run: npm run build 17 | - run: npm install @semantic-release/git 18 | - uses: actions/create-github-app-token@v1 19 | id: app-token 20 | with: 21 | app-id: 474182 22 | private-key: ${{ secrets.GR2M_SEMANTIC_RELEASE_PRIVATE_KEY }} 23 | - run: npx semantic-release 24 | env: 25 | GITHUB_TOKEN: ${{ steps.app-token.outputs.token }} 26 | - run: >- 27 | git push 28 | https://x-access-token:${GITHUB_TOKEN}@github.com/${GITHUB_REPOSITORY}.git 29 | HEAD:refs/heads/v1.x 30 | env: 31 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 32 | -------------------------------------------------------------------------------- /.github/workflows/test.yml: -------------------------------------------------------------------------------- 1 | name: Test 2 | on: 3 | push: 4 | branches: 5 | - main 6 | pull_request_target: 7 | types: [opened, synchronize] 8 | 9 | jobs: 10 | readmeExample: 11 | name: "[TEST] README example" 12 | runs-on: ubuntu-latest 13 | steps: 14 | - uses: actions/checkout@v4 15 | - uses: actions/setup-node@v4 16 | with: 17 | node-version: 20 # use same as runtime in action.yml 18 | - run: npm ci 19 | - run: npm run build 20 | - name: Get latest release of ${{ github.repository }} 21 | uses: ./ 22 | id: stats 23 | with: 24 | id: ${{ secrets.APP_ID }} 25 | private_key: ${{ secrets.PRIVATE_KEY }} 26 | - run: "echo installations: '${{ steps.stats.outputs.installations }}'" 27 | - run: "echo repositories: '${{ steps.stats.outputs.repositories }}'" 28 | - run: "echo suspended: '${{ steps.stats.outputs.suspended_installations }}'" 29 | - run: >- 30 | echo most popular repositories: '${{ 31 | steps.stats.outputs.popular_repositories }}' 32 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules -------------------------------------------------------------------------------- /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 contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, race, religion, or sexual identity and orientation. 6 | 7 | ## Our Standards 8 | 9 | Examples of behavior that contributes to creating a positive environment include: 10 | 11 | - Using welcoming and inclusive language 12 | - Being respectful of differing viewpoints and experiences 13 | - Gracefully accepting constructive criticism 14 | - Focusing on what is best for the community 15 | - Showing empathy towards other community members 16 | 17 | Examples of unacceptable behavior by participants include: 18 | 19 | - The use of sexualized language or imagery and unwelcome sexual attention or advances 20 | - Trolling, insulting/derogatory comments, and personal or political attacks 21 | - Public or private harassment 22 | - Publishing others' private information, such as a physical or electronic address, without explicit permission 23 | - Other conduct which could reasonably be considered inappropriate in a professional setting 24 | 25 | ## Our Responsibilities 26 | 27 | Project maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior. 28 | 29 | Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful. 30 | 31 | ## Scope 32 | 33 | This Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and clarified by project maintainers. 34 | 35 | ## Enforcement 36 | 37 | Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team at opensource+octokit@github.com. The project team will review and investigate all complaints, and will respond in a way that it deems appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately. 38 | 39 | Project maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project's leadership. 40 | 41 | ## Attribution 42 | 43 | This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, available at [http://contributor-covenant.org/version/1/4][version] 44 | 45 | [homepage]: http://contributor-covenant.org 46 | [version]: http://contributor-covenant.org/version/1/4/ 47 | -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | # How to contribute 2 | 3 | Please note that this project is released with a [Contributor Code of Conduct](CODE_OF_CONDUCT.md). 4 | By participating in this project you agree to abide by its terms. 5 | 6 | ## Run action locally 7 | 8 | The action requires two environment variables to be set 9 | 10 | 1. `INPUT_ID` 11 | 2. `INPUT_PRIVATE_KEY` 12 | 13 | Replace linebreaks with `\n` in your test Apps private key, then set both `INPUT_ID` and `INPUT_PRIVATE_KEY` right when you run `node index.js` 14 | 15 | ``` 16 | INPUT_ID=123 INPUT_PRIVATE_KEY="-----BEGIN RSA PRIVATE KEY-----\nMII...PZaqrmA==\n-----END RSA PRIVATE KEY-----\n" node index.js 17 | ``` 18 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | ISC License 2 | 3 | Copyright (c) 2020 Gregor Martynus 4 | 5 | Permission to use, copy, modify, and/or distribute this software for any 6 | purpose with or without fee is hereby granted, provided that the above 7 | copyright notice and this permission notice appear in all copies. 8 | 9 | THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 10 | WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 11 | MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 12 | ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 13 | WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 14 | ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 15 | OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 16 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # GitHub App Statistics Action 2 | 3 | > GitHub Action to retrieve statistics for a GitHub App 4 | 5 | [![Build Status](https://github.com/gr2m/app-stats-action/workflows/Test/badge.svg)](https://github.com/gr2m/app-stats-action/actions) 6 | 7 | ## Usage 8 | 9 | ```yml 10 | name: App Stats 11 | on: 12 | push: 13 | branches: 14 | - master 15 | 16 | jobs: 17 | log: 18 | runs-on: ubuntu-latest 19 | steps: 20 | - uses: gr2m/app-stats-action@v1.x 21 | id: stats 22 | with: 23 | id: ${{ secrets.APP_ID }} 24 | private_key: ${{ secrets.PRIVATE_KEY }} 25 | - run: "echo installations: '${{ steps.stats.outputs.installations }}'" 26 | - run: "echo repositories: '${{ steps.stats.outputs.repositories }}'" 27 | - run: "echo suspended: '${{ steps.stats.outputs.suspended_installations }}'" 28 | - run: "echo most popular repositories: '${{ steps.stats.outputs.popular_repositories }}'" 29 | ``` 30 | 31 | ## Debugging 32 | 33 | To see additional debug logs, create a secret with the name: `ACTIONS_STEP_DEBUG` and value `true`. 34 | 35 | ## Contributing 36 | 37 | See [CONTRIBUTING.md](CONTRIBUTING.md) 38 | 39 | ## License 40 | 41 | [ISC](LICENSE) 42 | -------------------------------------------------------------------------------- /action.yml: -------------------------------------------------------------------------------- 1 | name: GitHub App Statistics 2 | description: "Retrieve statistics for a GitHub App" 3 | branding: 4 | icon: "bar-chart-2" 5 | color: purple 6 | inputs: 7 | id: 8 | description: "App ID" 9 | required: true 10 | private_key: 11 | description: "contents of the app's *.pem private key file." 12 | required: true 13 | outputs: 14 | installations: 15 | description: "Number of installations" 16 | repositories: 17 | description: "Number of repositories" 18 | suspended_installations: 19 | description: "Number of suspended installations" 20 | popular_repositories: 21 | description: "JSON string for user/organization login and total number of stars of public repositories the app is installed on" 22 | runs: 23 | using: "node20" 24 | main: "dist/index.js" 25 | -------------------------------------------------------------------------------- /index.js: -------------------------------------------------------------------------------- 1 | const core = require("@actions/core"); 2 | 3 | const getAppStats = require("./lib/app-stats"); 4 | 5 | main(); 6 | 7 | async function main() { 8 | const appId = core.getInput("id", { required: true }); 9 | const privateKey = core 10 | .getInput("private_key", { required: true }) 11 | .replace(/\\n/g, "\n"); 12 | 13 | try { 14 | const { 15 | installations, 16 | repositories, 17 | popularRepositories, 18 | suspendedInstallations, 19 | } = await getAppStats({ 20 | appId, 21 | privateKey, 22 | }); 23 | core.setOutput("installations", installations); 24 | core.setOutput("repositories", repositories); 25 | core.setOutput("popular_repositories", JSON.stringify(popularRepositories)); 26 | core.setOutput("suspended_installations", suspendedInstallations); 27 | console.log("done."); 28 | } catch (error) { 29 | core.error(error); 30 | core.setFailed(error.message); 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /lib/app-octokit.js: -------------------------------------------------------------------------------- 1 | const { createAppAuth } = require("@octokit/auth-app"); 2 | const { Octokit } = require("@octokit/core"); 3 | const { paginateRest } = require("@octokit/plugin-paginate-rest"); 4 | const { retry } = require("@octokit/plugin-retry"); 5 | const { throttling } = require("@octokit/plugin-throttling"); 6 | 7 | const octokitPluginStdoutProgress = require("./octokit-plugin-stdout-progress"); 8 | 9 | module.exports = Octokit.plugin( 10 | paginateRest, 11 | retry, 12 | throttling, 13 | octokitPluginStdoutProgress 14 | ).defaults({ 15 | authStrategy: createAppAuth, 16 | throttle: { 17 | onRateLimit: (retryAfter, options, octokit) => { 18 | octokit.log.warn( 19 | `Request quota exhausted for request ${options.method} ${options.url}` 20 | ); 21 | 22 | if (options.request.retryCount === 0) { 23 | // only retries once 24 | octokit.log.info(`Retrying after ${retryAfter} seconds!`); 25 | return true; 26 | } 27 | }, 28 | onSecondaryRateLimit: (retryAfter, options, octokit) => { 29 | // does not retry, only logs a warning 30 | octokit.log.warn( 31 | `Abuse detected for request ${options.method} ${options.url}` 32 | ); 33 | 34 | if (options.request.retryCount === 0) { 35 | // only retries once 36 | octokit.log.info(`Retrying after ${retryAfter} seconds!`); 37 | return true; 38 | } 39 | }, 40 | }, 41 | }); 42 | -------------------------------------------------------------------------------- /lib/app-stats.js: -------------------------------------------------------------------------------- 1 | module.exports = getAppStats; 2 | 3 | const Octokit = require("./app-octokit"); 4 | 5 | async function getAppStats({ appId, privateKey }) { 6 | try { 7 | const octokit = new Octokit({ 8 | auth: { 9 | appId, 10 | privateKey, 11 | }, 12 | baseUrl: process.env["GITHUB_API_URL"] || "https://api.github.com", 13 | }); 14 | 15 | const installations = await octokit.paginate( 16 | "GET /app/installations", 17 | { 18 | mediaType: { previews: ["machine-man"] }, 19 | per_page: 100, 20 | }, 21 | (response) => 22 | response.data.map((installation) => { 23 | const { 24 | id, 25 | account: { login }, 26 | suspended_at, 27 | } = installation; 28 | 29 | return { id, login, suspended: !!suspended_at }; 30 | }) 31 | ); 32 | 33 | const accounts = []; 34 | let installedRepositories = 0; 35 | let suspendedInstallations = 0; 36 | for (const installation of installations) { 37 | if (installation.suspended) { 38 | suspendedInstallations++; 39 | continue; 40 | } 41 | 42 | const installationOctokit = new Octokit({ 43 | auth: { 44 | appId, 45 | privateKey, 46 | installationId: installation.id, 47 | }, 48 | }); 49 | 50 | const repositories = await installationOctokit 51 | .paginate( 52 | "GET /installation/repositories", 53 | { 54 | mediaType: { previews: ["machine-man"] }, 55 | per_page: 100, 56 | }, 57 | (response) => 58 | response.data.map((repository) => { 59 | return { 60 | private: repository.private, 61 | stars: repository.stargazers_count, 62 | }; 63 | }) 64 | ) 65 | .catch((error) => { 66 | console.error(error); 67 | return []; 68 | }); 69 | 70 | const stars = repositories 71 | .filter((repository) => !repository.private) 72 | .reduce((stars, repository) => { 73 | return stars + repository.stars; 74 | }, 0); 75 | 76 | accounts.push({ ...installation, stars }); 77 | installedRepositories += repositories.length; 78 | } 79 | 80 | console.log(""); 81 | return { 82 | installations: accounts.length + suspendedInstallations, 83 | repositories: installedRepositories, 84 | suspendedInstallations, 85 | popularRepositories: accounts 86 | .sort((a, b) => b.stars - a.stars) 87 | .slice(0, 10) 88 | .map(({ suspended, ...account }) => account), 89 | }; 90 | } catch (error) { 91 | console.log(error); 92 | throw error; 93 | } 94 | } 95 | -------------------------------------------------------------------------------- /lib/octokit-plugin-stdout-progress.js: -------------------------------------------------------------------------------- 1 | module.exports = octokitPluginStdoutProgress; 2 | 3 | function octokitPluginStdoutProgress(octokit) { 4 | octokit.hook.before("request", () => process.stdout.write(".")); 5 | } 6 | -------------------------------------------------------------------------------- /package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "app-stats-action", 3 | "version": "1.0.0", 4 | "lockfileVersion": 2, 5 | "requires": true, 6 | "packages": { 7 | "": { 8 | "name": "app-stats-action", 9 | "version": "1.0.0", 10 | "license": "MIT", 11 | "dependencies": { 12 | "@actions/core": "^1.10.0", 13 | "@octokit/auth-app": "^6.0.0", 14 | "@octokit/core": "^5.0.0", 15 | "@octokit/plugin-paginate-rest": "^7.1.2", 16 | "@octokit/plugin-retry": "^5.0.5", 17 | "@octokit/plugin-throttling": "^7.0.0" 18 | }, 19 | "devDependencies": { 20 | "@vercel/ncc": "^0.36.1" 21 | } 22 | }, 23 | "node_modules/@actions/core": { 24 | "version": "1.10.0", 25 | "resolved": "https://registry.npmjs.org/@actions/core/-/core-1.10.0.tgz", 26 | "integrity": "sha512-2aZDDa3zrrZbP5ZYg159sNoLRb61nQ7awl5pSvIq5Qpj81vwDzdMRKzkWJGJuwVvWpvZKx7vspJALyvaaIQyug==", 27 | "dependencies": { 28 | "@actions/http-client": "^2.0.1", 29 | "uuid": "^8.3.2" 30 | } 31 | }, 32 | "node_modules/@actions/http-client": { 33 | "version": "2.0.1", 34 | "resolved": "https://registry.npmjs.org/@actions/http-client/-/http-client-2.0.1.tgz", 35 | "integrity": "sha512-PIXiMVtz6VvyaRsGY268qvj57hXQEpsYogYOu2nrQhlf+XCGmZstmuZBbAybUl1nQGnvS1k1eEsQ69ZoD7xlSw==", 36 | "dependencies": { 37 | "tunnel": "^0.0.6" 38 | } 39 | }, 40 | "node_modules/@octokit/auth-app": { 41 | "version": "6.0.0", 42 | "resolved": "https://registry.npmjs.org/@octokit/auth-app/-/auth-app-6.0.0.tgz", 43 | "integrity": "sha512-OKct7Rukf3g9DjpzcpdacQsdmd6oPrJ7fZND22JkjzhDvfhttUOnmh+qPS4kHhaNNyTxqSThnfrUWvkqNLd1nw==", 44 | "dependencies": { 45 | "@octokit/auth-oauth-app": "^7.0.0", 46 | "@octokit/auth-oauth-user": "^4.0.0", 47 | "@octokit/request": "^8.0.2", 48 | "@octokit/request-error": "^5.0.0", 49 | "@octokit/types": "^11.0.0", 50 | "deprecation": "^2.3.1", 51 | "lru-cache": "^10.0.0", 52 | "universal-github-app-jwt": "^1.1.1", 53 | "universal-user-agent": "^6.0.0" 54 | }, 55 | "engines": { 56 | "node": ">= 18" 57 | } 58 | }, 59 | "node_modules/@octokit/auth-app/node_modules/lru-cache": { 60 | "version": "10.0.0", 61 | "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.0.0.tgz", 62 | "integrity": "sha512-svTf/fzsKHffP42sujkO/Rjs37BCIsQVRCeNYIm9WN8rgT7ffoUnRtZCqU+6BqcSBdv8gwJeTz8knJpgACeQMw==", 63 | "engines": { 64 | "node": "14 || >=16.14" 65 | } 66 | }, 67 | "node_modules/@octokit/auth-oauth-app": { 68 | "version": "7.0.0", 69 | "resolved": "https://registry.npmjs.org/@octokit/auth-oauth-app/-/auth-oauth-app-7.0.0.tgz", 70 | "integrity": "sha512-8JvJEXGoEqrbzLwt3SwIUvkDd+1wrM8up0KawvDIElB8rbxPbvWppGO0SLKAWSJ0q8ILcVq+mWck6pDcZ3a9KA==", 71 | "dependencies": { 72 | "@octokit/auth-oauth-device": "^6.0.0", 73 | "@octokit/auth-oauth-user": "^4.0.0", 74 | "@octokit/request": "^8.0.2", 75 | "@octokit/types": "^11.0.0", 76 | "@types/btoa-lite": "^1.0.0", 77 | "btoa-lite": "^1.0.0", 78 | "universal-user-agent": "^6.0.0" 79 | }, 80 | "engines": { 81 | "node": ">= 18" 82 | } 83 | }, 84 | "node_modules/@octokit/auth-oauth-device": { 85 | "version": "6.0.0", 86 | "resolved": "https://registry.npmjs.org/@octokit/auth-oauth-device/-/auth-oauth-device-6.0.0.tgz", 87 | "integrity": "sha512-Zgf/LKhwWk54rJaTGYVYtbKgUty+ouil6VQeRd+pCw7Gd0ECoSWaZuHK6uDGC/HtnWHjpSWFhzxPauDoHcNRtg==", 88 | "dependencies": { 89 | "@octokit/oauth-methods": "^4.0.0", 90 | "@octokit/request": "^8.0.0", 91 | "@octokit/types": "^11.0.0", 92 | "universal-user-agent": "^6.0.0" 93 | }, 94 | "engines": { 95 | "node": ">= 18" 96 | } 97 | }, 98 | "node_modules/@octokit/auth-oauth-user": { 99 | "version": "4.0.0", 100 | "resolved": "https://registry.npmjs.org/@octokit/auth-oauth-user/-/auth-oauth-user-4.0.0.tgz", 101 | "integrity": "sha512-VOm5aIkVGHaOhIvsF/4YmSjoYDzzrKbbYkdSEO0KqHK7I8SlO3ZndSikQ1fBlNPUEH0ve2BOTxLrVvI1qBf9/Q==", 102 | "dependencies": { 103 | "@octokit/auth-oauth-device": "^6.0.0", 104 | "@octokit/oauth-methods": "^4.0.0", 105 | "@octokit/request": "^8.0.2", 106 | "@octokit/types": "^11.0.0", 107 | "btoa-lite": "^1.0.0", 108 | "universal-user-agent": "^6.0.0" 109 | }, 110 | "engines": { 111 | "node": ">= 18" 112 | } 113 | }, 114 | "node_modules/@octokit/auth-token": { 115 | "version": "4.0.0", 116 | "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-4.0.0.tgz", 117 | "integrity": "sha512-tY/msAuJo6ARbK6SPIxZrPBms3xPbfwBrulZe0Wtr/DIY9lje2HeV1uoebShn6mx7SjCHif6EjMvoREj+gZ+SA==", 118 | "engines": { 119 | "node": ">= 18" 120 | } 121 | }, 122 | "node_modules/@octokit/core": { 123 | "version": "5.0.0", 124 | "resolved": "https://registry.npmjs.org/@octokit/core/-/core-5.0.0.tgz", 125 | "integrity": "sha512-YbAtMWIrbZ9FCXbLwT9wWB8TyLjq9mxpKdgB3dUNxQcIVTf9hJ70gRPwAcqGZdY6WdJPZ0I7jLaaNDCiloGN2A==", 126 | "dependencies": { 127 | "@octokit/auth-token": "^4.0.0", 128 | "@octokit/graphql": "^7.0.0", 129 | "@octokit/request": "^8.0.2", 130 | "@octokit/request-error": "^5.0.0", 131 | "@octokit/types": "^11.0.0", 132 | "before-after-hook": "^2.2.0", 133 | "universal-user-agent": "^6.0.0" 134 | }, 135 | "engines": { 136 | "node": ">= 18" 137 | } 138 | }, 139 | "node_modules/@octokit/endpoint": { 140 | "version": "9.0.0", 141 | "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-9.0.0.tgz", 142 | "integrity": "sha512-szrQhiqJ88gghWY2Htt8MqUDO6++E/EIXqJ2ZEp5ma3uGS46o7LZAzSLt49myB7rT+Hfw5Y6gO3LmOxGzHijAQ==", 143 | "dependencies": { 144 | "@octokit/types": "^11.0.0", 145 | "is-plain-object": "^5.0.0", 146 | "universal-user-agent": "^6.0.0" 147 | }, 148 | "engines": { 149 | "node": ">= 18" 150 | } 151 | }, 152 | "node_modules/@octokit/graphql": { 153 | "version": "7.0.1", 154 | "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-7.0.1.tgz", 155 | "integrity": "sha512-T5S3oZ1JOE58gom6MIcrgwZXzTaxRnxBso58xhozxHpOqSTgDS6YNeEUvZ/kRvXgPrRz/KHnZhtb7jUMRi9E6w==", 156 | "dependencies": { 157 | "@octokit/request": "^8.0.1", 158 | "@octokit/types": "^11.0.0", 159 | "universal-user-agent": "^6.0.0" 160 | }, 161 | "engines": { 162 | "node": ">= 18" 163 | } 164 | }, 165 | "node_modules/@octokit/oauth-authorization-url": { 166 | "version": "6.0.2", 167 | "resolved": "https://registry.npmjs.org/@octokit/oauth-authorization-url/-/oauth-authorization-url-6.0.2.tgz", 168 | "integrity": "sha512-CdoJukjXXxqLNK4y/VOiVzQVjibqoj/xHgInekviUJV73y/BSIcwvJ/4aNHPBPKcPWFnd4/lO9uqRV65jXhcLA==", 169 | "engines": { 170 | "node": ">= 18" 171 | } 172 | }, 173 | "node_modules/@octokit/oauth-methods": { 174 | "version": "4.0.0", 175 | "resolved": "https://registry.npmjs.org/@octokit/oauth-methods/-/oauth-methods-4.0.0.tgz", 176 | "integrity": "sha512-dqy7BZLfLbi3/8X8xPKUKZclMEK9vN3fK5WF3ortRvtplQTszFvdAGbTo71gGLO+4ZxspNiLjnqdd64Chklf7w==", 177 | "dependencies": { 178 | "@octokit/oauth-authorization-url": "^6.0.2", 179 | "@octokit/request": "^8.0.2", 180 | "@octokit/request-error": "^5.0.0", 181 | "@octokit/types": "^11.0.0", 182 | "btoa-lite": "^1.0.0" 183 | }, 184 | "engines": { 185 | "node": ">= 18" 186 | } 187 | }, 188 | "node_modules/@octokit/openapi-types": { 189 | "version": "18.0.0", 190 | "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-18.0.0.tgz", 191 | "integrity": "sha512-V8GImKs3TeQRxRtXFpG2wl19V7444NIOTDF24AWuIbmNaNYOQMWRbjcGDXV5B+0n887fgDcuMNOmlul+k+oJtw==" 192 | }, 193 | "node_modules/@octokit/plugin-paginate-rest": { 194 | "version": "7.1.2", 195 | "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-7.1.2.tgz", 196 | "integrity": "sha512-Jx8KuKqEAVRsK6fMzZKv3h6UH9/NRDHsDRtUAROqqmZlCptM///Uef7A1ViZ/cbDplekz7VbDWdFLAZ/mpuDww==", 197 | "dependencies": { 198 | "@octokit/tsconfig": "^2.0.0", 199 | "@octokit/types": "^9.3.2" 200 | }, 201 | "engines": { 202 | "node": ">= 18" 203 | }, 204 | "peerDependencies": { 205 | "@octokit/core": ">=4" 206 | } 207 | }, 208 | "node_modules/@octokit/plugin-paginate-rest/node_modules/@octokit/types": { 209 | "version": "9.3.2", 210 | "resolved": "https://registry.npmjs.org/@octokit/types/-/types-9.3.2.tgz", 211 | "integrity": "sha512-D4iHGTdAnEEVsB8fl95m1hiz7D5YiRdQ9b/OEb3BYRVwbLsGHcRVPz+u+BgRLNk0Q0/4iZCBqDN96j2XNxfXrA==", 212 | "dependencies": { 213 | "@octokit/openapi-types": "^18.0.0" 214 | } 215 | }, 216 | "node_modules/@octokit/plugin-retry": { 217 | "version": "5.0.5", 218 | "resolved": "https://registry.npmjs.org/@octokit/plugin-retry/-/plugin-retry-5.0.5.tgz", 219 | "integrity": "sha512-sB1RWMhSrre02Atv95K6bhESlJ/sPdZkK/wE/w1IdSCe0yM6FxSjksLa6T7aAvxvxlLKzQEC4KIiqpqyov1Tbg==", 220 | "dependencies": { 221 | "@octokit/request-error": "^4.0.1", 222 | "@octokit/types": "^10.0.0", 223 | "bottleneck": "^2.15.3" 224 | }, 225 | "engines": { 226 | "node": ">= 18" 227 | }, 228 | "peerDependencies": { 229 | "@octokit/core": ">=3" 230 | } 231 | }, 232 | "node_modules/@octokit/plugin-retry/node_modules/@octokit/request-error": { 233 | "version": "4.0.1", 234 | "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-4.0.1.tgz", 235 | "integrity": "sha512-DBTkqzs0K6SlK1gRaQ6A6yOnKKkbVy8n/A9E7Es5qYONIxBghqiETPqWhG9l7qvWgp8v3sDkB8vlV2AAX1N6gw==", 236 | "dependencies": { 237 | "@octokit/types": "^9.0.0", 238 | "deprecation": "^2.0.0", 239 | "once": "^1.4.0" 240 | }, 241 | "engines": { 242 | "node": ">= 18" 243 | } 244 | }, 245 | "node_modules/@octokit/plugin-retry/node_modules/@octokit/request-error/node_modules/@octokit/types": { 246 | "version": "9.3.2", 247 | "resolved": "https://registry.npmjs.org/@octokit/types/-/types-9.3.2.tgz", 248 | "integrity": "sha512-D4iHGTdAnEEVsB8fl95m1hiz7D5YiRdQ9b/OEb3BYRVwbLsGHcRVPz+u+BgRLNk0Q0/4iZCBqDN96j2XNxfXrA==", 249 | "dependencies": { 250 | "@octokit/openapi-types": "^18.0.0" 251 | } 252 | }, 253 | "node_modules/@octokit/plugin-retry/node_modules/@octokit/types": { 254 | "version": "10.0.0", 255 | "resolved": "https://registry.npmjs.org/@octokit/types/-/types-10.0.0.tgz", 256 | "integrity": "sha512-Vm8IddVmhCgU1fxC1eyinpwqzXPEYu0NrYzD3YZjlGjyftdLBTeqNblRC0jmJmgxbJIsQlyogVeGnrNaaMVzIg==", 257 | "dependencies": { 258 | "@octokit/openapi-types": "^18.0.0" 259 | } 260 | }, 261 | "node_modules/@octokit/plugin-throttling": { 262 | "version": "7.0.0", 263 | "resolved": "https://registry.npmjs.org/@octokit/plugin-throttling/-/plugin-throttling-7.0.0.tgz", 264 | "integrity": "sha512-KL2k/d0uANc8XqP5S64YcNFCudR3F5AaKO39XWdUtlJIjT9Ni79ekWJ6Kj5xvAw87udkOMEPcVf9xEge2+ahew==", 265 | "dependencies": { 266 | "@octokit/types": "^11.0.0", 267 | "bottleneck": "^2.15.3" 268 | }, 269 | "engines": { 270 | "node": ">= 18" 271 | }, 272 | "peerDependencies": { 273 | "@octokit/core": "^5.0.0" 274 | } 275 | }, 276 | "node_modules/@octokit/request": { 277 | "version": "8.0.4", 278 | "resolved": "https://registry.npmjs.org/@octokit/request/-/request-8.0.4.tgz", 279 | "integrity": "sha512-YZ1XeDRil4ejHKoBP8BgROgP4auOH5A9lLZH96l39GKKEmsKOccQxKP5M7m+Punblg1bFw8LrdeKIDwIzQ8afA==", 280 | "dependencies": { 281 | "@octokit/endpoint": "^9.0.0", 282 | "@octokit/request-error": "^5.0.0", 283 | "@octokit/types": "^11.0.0", 284 | "is-plain-object": "^5.0.0", 285 | "universal-user-agent": "^6.0.0" 286 | }, 287 | "engines": { 288 | "node": ">= 18" 289 | } 290 | }, 291 | "node_modules/@octokit/request-error": { 292 | "version": "5.0.0", 293 | "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-5.0.0.tgz", 294 | "integrity": "sha512-1ue0DH0Lif5iEqT52+Rf/hf0RmGO9NWFjrzmrkArpG9trFfDM/efx00BJHdLGuro4BR/gECxCU2Twf5OKrRFsQ==", 295 | "dependencies": { 296 | "@octokit/types": "^11.0.0", 297 | "deprecation": "^2.0.0", 298 | "once": "^1.4.0" 299 | }, 300 | "engines": { 301 | "node": ">= 18" 302 | } 303 | }, 304 | "node_modules/@octokit/tsconfig": { 305 | "version": "2.0.0", 306 | "resolved": "https://registry.npmjs.org/@octokit/tsconfig/-/tsconfig-2.0.0.tgz", 307 | "integrity": "sha512-tWnrai3quGt8+gRN2edzo9fmraWekeryXPeXDomMw2oFSpu/lH3VSWGn/q4V+rwjTRMeeXk/ci623/01Zet4VQ==" 308 | }, 309 | "node_modules/@octokit/types": { 310 | "version": "11.1.0", 311 | "resolved": "https://registry.npmjs.org/@octokit/types/-/types-11.1.0.tgz", 312 | "integrity": "sha512-Fz0+7GyLm/bHt8fwEqgvRBWwIV1S6wRRyq+V6exRKLVWaKGsuy6H9QFYeBVDV7rK6fO3XwHgQOPxv+cLj2zpXQ==", 313 | "dependencies": { 314 | "@octokit/openapi-types": "^18.0.0" 315 | } 316 | }, 317 | "node_modules/@types/btoa-lite": { 318 | "version": "1.0.0", 319 | "resolved": "https://registry.npmjs.org/@types/btoa-lite/-/btoa-lite-1.0.0.tgz", 320 | "integrity": "sha512-wJsiX1tosQ+J5+bY5LrSahHxr2wT+uME5UDwdN1kg4frt40euqA+wzECkmq4t5QbveHiJepfdThgQrPw6KiSlg==" 321 | }, 322 | "node_modules/@types/jsonwebtoken": { 323 | "version": "9.0.0", 324 | "resolved": "https://registry.npmjs.org/@types/jsonwebtoken/-/jsonwebtoken-9.0.0.tgz", 325 | "integrity": "sha512-mM4TkDpA9oixqg1Fv2vVpOFyIVLJjm5x4k0V+K/rEsizfjD7Tk7LKk3GTtbB7KCfP0FEHQtsZqFxYA0+sijNVg==", 326 | "dependencies": { 327 | "@types/node": "*" 328 | } 329 | }, 330 | "node_modules/@types/node": { 331 | "version": "18.11.18", 332 | "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.18.tgz", 333 | "integrity": "sha512-DHQpWGjyQKSHj3ebjFI/wRKcqQcdR+MoFBygntYOZytCqNfkd2ZC4ARDJ2DQqhjH5p85Nnd3jhUJIXrszFX/JA==" 334 | }, 335 | "node_modules/@vercel/ncc": { 336 | "version": "0.36.1", 337 | "resolved": "https://registry.npmjs.org/@vercel/ncc/-/ncc-0.36.1.tgz", 338 | "integrity": "sha512-S4cL7Taa9yb5qbv+6wLgiKVZ03Qfkc4jGRuiUQMQ8HGBD5pcNRnHeYM33zBvJE4/zJGjJJ8GScB+WmTsn9mORw==", 339 | "dev": true, 340 | "bin": { 341 | "ncc": "dist/ncc/cli.js" 342 | } 343 | }, 344 | "node_modules/before-after-hook": { 345 | "version": "2.2.3", 346 | "resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.2.3.tgz", 347 | "integrity": "sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ==" 348 | }, 349 | "node_modules/bottleneck": { 350 | "version": "2.19.5", 351 | "resolved": "https://registry.npmjs.org/bottleneck/-/bottleneck-2.19.5.tgz", 352 | "integrity": "sha512-VHiNCbI1lKdl44tGrhNfU3lup0Tj/ZBMJB5/2ZbNXRCPuRCO7ed2mgcK4r17y+KB2EfuYuRaVlwNbAeaWGSpbw==" 353 | }, 354 | "node_modules/btoa-lite": { 355 | "version": "1.0.0", 356 | "resolved": "https://registry.npmjs.org/btoa-lite/-/btoa-lite-1.0.0.tgz", 357 | "integrity": "sha512-gvW7InbIyF8AicrqWoptdW08pUxuhq8BEgowNajy9RhiE86fmGAGl+bLKo6oB8QP0CkqHLowfN0oJdKC/J6LbA==" 358 | }, 359 | "node_modules/buffer-equal-constant-time": { 360 | "version": "1.0.1", 361 | "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", 362 | "integrity": "sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==" 363 | }, 364 | "node_modules/deprecation": { 365 | "version": "2.3.1", 366 | "resolved": "https://registry.npmjs.org/deprecation/-/deprecation-2.3.1.tgz", 367 | "integrity": "sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==" 368 | }, 369 | "node_modules/ecdsa-sig-formatter": { 370 | "version": "1.0.11", 371 | "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz", 372 | "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==", 373 | "dependencies": { 374 | "safe-buffer": "^5.0.1" 375 | } 376 | }, 377 | "node_modules/is-plain-object": { 378 | "version": "5.0.0", 379 | "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", 380 | "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", 381 | "engines": { 382 | "node": ">=0.10.0" 383 | } 384 | }, 385 | "node_modules/jsonwebtoken": { 386 | "version": "9.0.0", 387 | "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-9.0.0.tgz", 388 | "integrity": "sha512-tuGfYXxkQGDPnLJ7SibiQgVgeDgfbPq2k2ICcbgqW8WxWLBAxKQM/ZCu/IT8SOSwmaYl4dpTFCW5xZv7YbbWUw==", 389 | "dependencies": { 390 | "jws": "^3.2.2", 391 | "lodash": "^4.17.21", 392 | "ms": "^2.1.1", 393 | "semver": "^7.3.8" 394 | }, 395 | "engines": { 396 | "node": ">=12", 397 | "npm": ">=6" 398 | } 399 | }, 400 | "node_modules/jwa": { 401 | "version": "1.4.1", 402 | "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.4.1.tgz", 403 | "integrity": "sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==", 404 | "dependencies": { 405 | "buffer-equal-constant-time": "1.0.1", 406 | "ecdsa-sig-formatter": "1.0.11", 407 | "safe-buffer": "^5.0.1" 408 | } 409 | }, 410 | "node_modules/jws": { 411 | "version": "3.2.2", 412 | "resolved": "https://registry.npmjs.org/jws/-/jws-3.2.2.tgz", 413 | "integrity": "sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==", 414 | "dependencies": { 415 | "jwa": "^1.4.1", 416 | "safe-buffer": "^5.0.1" 417 | } 418 | }, 419 | "node_modules/lodash": { 420 | "version": "4.17.21", 421 | "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", 422 | "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" 423 | }, 424 | "node_modules/lru-cache": { 425 | "version": "6.0.0", 426 | "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", 427 | "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", 428 | "dependencies": { 429 | "yallist": "^4.0.0" 430 | }, 431 | "engines": { 432 | "node": ">=10" 433 | } 434 | }, 435 | "node_modules/ms": { 436 | "version": "2.1.3", 437 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", 438 | "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" 439 | }, 440 | "node_modules/once": { 441 | "version": "1.4.0", 442 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", 443 | "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", 444 | "dependencies": { 445 | "wrappy": "1" 446 | } 447 | }, 448 | "node_modules/safe-buffer": { 449 | "version": "5.2.1", 450 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", 451 | "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", 452 | "funding": [ 453 | { 454 | "type": "github", 455 | "url": "https://github.com/sponsors/feross" 456 | }, 457 | { 458 | "type": "patreon", 459 | "url": "https://www.patreon.com/feross" 460 | }, 461 | { 462 | "type": "consulting", 463 | "url": "https://feross.org/support" 464 | } 465 | ] 466 | }, 467 | "node_modules/semver": { 468 | "version": "7.5.3", 469 | "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.3.tgz", 470 | "integrity": "sha512-QBlUtyVk/5EeHbi7X0fw6liDZc7BBmEaSYn01fMU1OUYbf6GPsbTtd8WmnqbI20SeycoHSeiybkE/q1Q+qlThQ==", 471 | "dependencies": { 472 | "lru-cache": "^6.0.0" 473 | }, 474 | "bin": { 475 | "semver": "bin/semver.js" 476 | }, 477 | "engines": { 478 | "node": ">=10" 479 | } 480 | }, 481 | "node_modules/tunnel": { 482 | "version": "0.0.6", 483 | "resolved": "https://registry.npmjs.org/tunnel/-/tunnel-0.0.6.tgz", 484 | "integrity": "sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==", 485 | "engines": { 486 | "node": ">=0.6.11 <=0.7.0 || >=0.7.3" 487 | } 488 | }, 489 | "node_modules/universal-github-app-jwt": { 490 | "version": "1.1.1", 491 | "resolved": "https://registry.npmjs.org/universal-github-app-jwt/-/universal-github-app-jwt-1.1.1.tgz", 492 | "integrity": "sha512-G33RTLrIBMFmlDV4u4CBF7dh71eWwykck4XgaxaIVeZKOYZRAAxvcGMRFTUclVY6xoUPQvO4Ne5wKGxYm/Yy9w==", 493 | "dependencies": { 494 | "@types/jsonwebtoken": "^9.0.0", 495 | "jsonwebtoken": "^9.0.0" 496 | } 497 | }, 498 | "node_modules/universal-user-agent": { 499 | "version": "6.0.0", 500 | "resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-6.0.0.tgz", 501 | "integrity": "sha512-isyNax3wXoKaulPDZWHQqbmIx1k2tb9fb3GGDBRxCscfYV2Ch7WxPArBsFEG8s/safwXTT7H4QGhaIkTp9447w==" 502 | }, 503 | "node_modules/uuid": { 504 | "version": "8.3.2", 505 | "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", 506 | "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", 507 | "bin": { 508 | "uuid": "dist/bin/uuid" 509 | } 510 | }, 511 | "node_modules/wrappy": { 512 | "version": "1.0.2", 513 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", 514 | "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" 515 | }, 516 | "node_modules/yallist": { 517 | "version": "4.0.0", 518 | "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", 519 | "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" 520 | } 521 | }, 522 | "dependencies": { 523 | "@actions/core": { 524 | "version": "1.10.0", 525 | "resolved": "https://registry.npmjs.org/@actions/core/-/core-1.10.0.tgz", 526 | "integrity": "sha512-2aZDDa3zrrZbP5ZYg159sNoLRb61nQ7awl5pSvIq5Qpj81vwDzdMRKzkWJGJuwVvWpvZKx7vspJALyvaaIQyug==", 527 | "requires": { 528 | "@actions/http-client": "^2.0.1", 529 | "uuid": "^8.3.2" 530 | } 531 | }, 532 | "@actions/http-client": { 533 | "version": "2.0.1", 534 | "resolved": "https://registry.npmjs.org/@actions/http-client/-/http-client-2.0.1.tgz", 535 | "integrity": "sha512-PIXiMVtz6VvyaRsGY268qvj57hXQEpsYogYOu2nrQhlf+XCGmZstmuZBbAybUl1nQGnvS1k1eEsQ69ZoD7xlSw==", 536 | "requires": { 537 | "tunnel": "^0.0.6" 538 | } 539 | }, 540 | "@octokit/auth-app": { 541 | "version": "6.0.0", 542 | "resolved": "https://registry.npmjs.org/@octokit/auth-app/-/auth-app-6.0.0.tgz", 543 | "integrity": "sha512-OKct7Rukf3g9DjpzcpdacQsdmd6oPrJ7fZND22JkjzhDvfhttUOnmh+qPS4kHhaNNyTxqSThnfrUWvkqNLd1nw==", 544 | "requires": { 545 | "@octokit/auth-oauth-app": "^7.0.0", 546 | "@octokit/auth-oauth-user": "^4.0.0", 547 | "@octokit/request": "^8.0.2", 548 | "@octokit/request-error": "^5.0.0", 549 | "@octokit/types": "^11.0.0", 550 | "deprecation": "^2.3.1", 551 | "lru-cache": "^10.0.0", 552 | "universal-github-app-jwt": "^1.1.1", 553 | "universal-user-agent": "^6.0.0" 554 | }, 555 | "dependencies": { 556 | "lru-cache": { 557 | "version": "10.0.0", 558 | "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.0.0.tgz", 559 | "integrity": "sha512-svTf/fzsKHffP42sujkO/Rjs37BCIsQVRCeNYIm9WN8rgT7ffoUnRtZCqU+6BqcSBdv8gwJeTz8knJpgACeQMw==" 560 | } 561 | } 562 | }, 563 | "@octokit/auth-oauth-app": { 564 | "version": "7.0.0", 565 | "resolved": "https://registry.npmjs.org/@octokit/auth-oauth-app/-/auth-oauth-app-7.0.0.tgz", 566 | "integrity": "sha512-8JvJEXGoEqrbzLwt3SwIUvkDd+1wrM8up0KawvDIElB8rbxPbvWppGO0SLKAWSJ0q8ILcVq+mWck6pDcZ3a9KA==", 567 | "requires": { 568 | "@octokit/auth-oauth-device": "^6.0.0", 569 | "@octokit/auth-oauth-user": "^4.0.0", 570 | "@octokit/request": "^8.0.2", 571 | "@octokit/types": "^11.0.0", 572 | "@types/btoa-lite": "^1.0.0", 573 | "btoa-lite": "^1.0.0", 574 | "universal-user-agent": "^6.0.0" 575 | } 576 | }, 577 | "@octokit/auth-oauth-device": { 578 | "version": "6.0.0", 579 | "resolved": "https://registry.npmjs.org/@octokit/auth-oauth-device/-/auth-oauth-device-6.0.0.tgz", 580 | "integrity": "sha512-Zgf/LKhwWk54rJaTGYVYtbKgUty+ouil6VQeRd+pCw7Gd0ECoSWaZuHK6uDGC/HtnWHjpSWFhzxPauDoHcNRtg==", 581 | "requires": { 582 | "@octokit/oauth-methods": "^4.0.0", 583 | "@octokit/request": "^8.0.0", 584 | "@octokit/types": "^11.0.0", 585 | "universal-user-agent": "^6.0.0" 586 | } 587 | }, 588 | "@octokit/auth-oauth-user": { 589 | "version": "4.0.0", 590 | "resolved": "https://registry.npmjs.org/@octokit/auth-oauth-user/-/auth-oauth-user-4.0.0.tgz", 591 | "integrity": "sha512-VOm5aIkVGHaOhIvsF/4YmSjoYDzzrKbbYkdSEO0KqHK7I8SlO3ZndSikQ1fBlNPUEH0ve2BOTxLrVvI1qBf9/Q==", 592 | "requires": { 593 | "@octokit/auth-oauth-device": "^6.0.0", 594 | "@octokit/oauth-methods": "^4.0.0", 595 | "@octokit/request": "^8.0.2", 596 | "@octokit/types": "^11.0.0", 597 | "btoa-lite": "^1.0.0", 598 | "universal-user-agent": "^6.0.0" 599 | } 600 | }, 601 | "@octokit/auth-token": { 602 | "version": "4.0.0", 603 | "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-4.0.0.tgz", 604 | "integrity": "sha512-tY/msAuJo6ARbK6SPIxZrPBms3xPbfwBrulZe0Wtr/DIY9lje2HeV1uoebShn6mx7SjCHif6EjMvoREj+gZ+SA==" 605 | }, 606 | "@octokit/core": { 607 | "version": "5.0.0", 608 | "resolved": "https://registry.npmjs.org/@octokit/core/-/core-5.0.0.tgz", 609 | "integrity": "sha512-YbAtMWIrbZ9FCXbLwT9wWB8TyLjq9mxpKdgB3dUNxQcIVTf9hJ70gRPwAcqGZdY6WdJPZ0I7jLaaNDCiloGN2A==", 610 | "requires": { 611 | "@octokit/auth-token": "^4.0.0", 612 | "@octokit/graphql": "^7.0.0", 613 | "@octokit/request": "^8.0.2", 614 | "@octokit/request-error": "^5.0.0", 615 | "@octokit/types": "^11.0.0", 616 | "before-after-hook": "^2.2.0", 617 | "universal-user-agent": "^6.0.0" 618 | } 619 | }, 620 | "@octokit/endpoint": { 621 | "version": "9.0.0", 622 | "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-9.0.0.tgz", 623 | "integrity": "sha512-szrQhiqJ88gghWY2Htt8MqUDO6++E/EIXqJ2ZEp5ma3uGS46o7LZAzSLt49myB7rT+Hfw5Y6gO3LmOxGzHijAQ==", 624 | "requires": { 625 | "@octokit/types": "^11.0.0", 626 | "is-plain-object": "^5.0.0", 627 | "universal-user-agent": "^6.0.0" 628 | } 629 | }, 630 | "@octokit/graphql": { 631 | "version": "7.0.1", 632 | "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-7.0.1.tgz", 633 | "integrity": "sha512-T5S3oZ1JOE58gom6MIcrgwZXzTaxRnxBso58xhozxHpOqSTgDS6YNeEUvZ/kRvXgPrRz/KHnZhtb7jUMRi9E6w==", 634 | "requires": { 635 | "@octokit/request": "^8.0.1", 636 | "@octokit/types": "^11.0.0", 637 | "universal-user-agent": "^6.0.0" 638 | } 639 | }, 640 | "@octokit/oauth-authorization-url": { 641 | "version": "6.0.2", 642 | "resolved": "https://registry.npmjs.org/@octokit/oauth-authorization-url/-/oauth-authorization-url-6.0.2.tgz", 643 | "integrity": "sha512-CdoJukjXXxqLNK4y/VOiVzQVjibqoj/xHgInekviUJV73y/BSIcwvJ/4aNHPBPKcPWFnd4/lO9uqRV65jXhcLA==" 644 | }, 645 | "@octokit/oauth-methods": { 646 | "version": "4.0.0", 647 | "resolved": "https://registry.npmjs.org/@octokit/oauth-methods/-/oauth-methods-4.0.0.tgz", 648 | "integrity": "sha512-dqy7BZLfLbi3/8X8xPKUKZclMEK9vN3fK5WF3ortRvtplQTszFvdAGbTo71gGLO+4ZxspNiLjnqdd64Chklf7w==", 649 | "requires": { 650 | "@octokit/oauth-authorization-url": "^6.0.2", 651 | "@octokit/request": "^8.0.2", 652 | "@octokit/request-error": "^5.0.0", 653 | "@octokit/types": "^11.0.0", 654 | "btoa-lite": "^1.0.0" 655 | } 656 | }, 657 | "@octokit/openapi-types": { 658 | "version": "18.0.0", 659 | "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-18.0.0.tgz", 660 | "integrity": "sha512-V8GImKs3TeQRxRtXFpG2wl19V7444NIOTDF24AWuIbmNaNYOQMWRbjcGDXV5B+0n887fgDcuMNOmlul+k+oJtw==" 661 | }, 662 | "@octokit/plugin-paginate-rest": { 663 | "version": "7.1.2", 664 | "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-7.1.2.tgz", 665 | "integrity": "sha512-Jx8KuKqEAVRsK6fMzZKv3h6UH9/NRDHsDRtUAROqqmZlCptM///Uef7A1ViZ/cbDplekz7VbDWdFLAZ/mpuDww==", 666 | "requires": { 667 | "@octokit/tsconfig": "^2.0.0", 668 | "@octokit/types": "^9.3.2" 669 | }, 670 | "dependencies": { 671 | "@octokit/types": { 672 | "version": "9.3.2", 673 | "resolved": "https://registry.npmjs.org/@octokit/types/-/types-9.3.2.tgz", 674 | "integrity": "sha512-D4iHGTdAnEEVsB8fl95m1hiz7D5YiRdQ9b/OEb3BYRVwbLsGHcRVPz+u+BgRLNk0Q0/4iZCBqDN96j2XNxfXrA==", 675 | "requires": { 676 | "@octokit/openapi-types": "^18.0.0" 677 | } 678 | } 679 | } 680 | }, 681 | "@octokit/plugin-retry": { 682 | "version": "5.0.5", 683 | "resolved": "https://registry.npmjs.org/@octokit/plugin-retry/-/plugin-retry-5.0.5.tgz", 684 | "integrity": "sha512-sB1RWMhSrre02Atv95K6bhESlJ/sPdZkK/wE/w1IdSCe0yM6FxSjksLa6T7aAvxvxlLKzQEC4KIiqpqyov1Tbg==", 685 | "requires": { 686 | "@octokit/request-error": "^4.0.1", 687 | "@octokit/types": "^10.0.0", 688 | "bottleneck": "^2.15.3" 689 | }, 690 | "dependencies": { 691 | "@octokit/request-error": { 692 | "version": "4.0.1", 693 | "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-4.0.1.tgz", 694 | "integrity": "sha512-DBTkqzs0K6SlK1gRaQ6A6yOnKKkbVy8n/A9E7Es5qYONIxBghqiETPqWhG9l7qvWgp8v3sDkB8vlV2AAX1N6gw==", 695 | "requires": { 696 | "@octokit/types": "^9.0.0", 697 | "deprecation": "^2.0.0", 698 | "once": "^1.4.0" 699 | }, 700 | "dependencies": { 701 | "@octokit/types": { 702 | "version": "9.3.2", 703 | "resolved": "https://registry.npmjs.org/@octokit/types/-/types-9.3.2.tgz", 704 | "integrity": "sha512-D4iHGTdAnEEVsB8fl95m1hiz7D5YiRdQ9b/OEb3BYRVwbLsGHcRVPz+u+BgRLNk0Q0/4iZCBqDN96j2XNxfXrA==", 705 | "requires": { 706 | "@octokit/openapi-types": "^18.0.0" 707 | } 708 | } 709 | } 710 | }, 711 | "@octokit/types": { 712 | "version": "10.0.0", 713 | "resolved": "https://registry.npmjs.org/@octokit/types/-/types-10.0.0.tgz", 714 | "integrity": "sha512-Vm8IddVmhCgU1fxC1eyinpwqzXPEYu0NrYzD3YZjlGjyftdLBTeqNblRC0jmJmgxbJIsQlyogVeGnrNaaMVzIg==", 715 | "requires": { 716 | "@octokit/openapi-types": "^18.0.0" 717 | } 718 | } 719 | } 720 | }, 721 | "@octokit/plugin-throttling": { 722 | "version": "7.0.0", 723 | "resolved": "https://registry.npmjs.org/@octokit/plugin-throttling/-/plugin-throttling-7.0.0.tgz", 724 | "integrity": "sha512-KL2k/d0uANc8XqP5S64YcNFCudR3F5AaKO39XWdUtlJIjT9Ni79ekWJ6Kj5xvAw87udkOMEPcVf9xEge2+ahew==", 725 | "requires": { 726 | "@octokit/types": "^11.0.0", 727 | "bottleneck": "^2.15.3" 728 | } 729 | }, 730 | "@octokit/request": { 731 | "version": "8.0.4", 732 | "resolved": "https://registry.npmjs.org/@octokit/request/-/request-8.0.4.tgz", 733 | "integrity": "sha512-YZ1XeDRil4ejHKoBP8BgROgP4auOH5A9lLZH96l39GKKEmsKOccQxKP5M7m+Punblg1bFw8LrdeKIDwIzQ8afA==", 734 | "requires": { 735 | "@octokit/endpoint": "^9.0.0", 736 | "@octokit/request-error": "^5.0.0", 737 | "@octokit/types": "^11.0.0", 738 | "is-plain-object": "^5.0.0", 739 | "universal-user-agent": "^6.0.0" 740 | } 741 | }, 742 | "@octokit/request-error": { 743 | "version": "5.0.0", 744 | "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-5.0.0.tgz", 745 | "integrity": "sha512-1ue0DH0Lif5iEqT52+Rf/hf0RmGO9NWFjrzmrkArpG9trFfDM/efx00BJHdLGuro4BR/gECxCU2Twf5OKrRFsQ==", 746 | "requires": { 747 | "@octokit/types": "^11.0.0", 748 | "deprecation": "^2.0.0", 749 | "once": "^1.4.0" 750 | } 751 | }, 752 | "@octokit/tsconfig": { 753 | "version": "2.0.0", 754 | "resolved": "https://registry.npmjs.org/@octokit/tsconfig/-/tsconfig-2.0.0.tgz", 755 | "integrity": "sha512-tWnrai3quGt8+gRN2edzo9fmraWekeryXPeXDomMw2oFSpu/lH3VSWGn/q4V+rwjTRMeeXk/ci623/01Zet4VQ==" 756 | }, 757 | "@octokit/types": { 758 | "version": "11.1.0", 759 | "resolved": "https://registry.npmjs.org/@octokit/types/-/types-11.1.0.tgz", 760 | "integrity": "sha512-Fz0+7GyLm/bHt8fwEqgvRBWwIV1S6wRRyq+V6exRKLVWaKGsuy6H9QFYeBVDV7rK6fO3XwHgQOPxv+cLj2zpXQ==", 761 | "requires": { 762 | "@octokit/openapi-types": "^18.0.0" 763 | } 764 | }, 765 | "@types/btoa-lite": { 766 | "version": "1.0.0", 767 | "resolved": "https://registry.npmjs.org/@types/btoa-lite/-/btoa-lite-1.0.0.tgz", 768 | "integrity": "sha512-wJsiX1tosQ+J5+bY5LrSahHxr2wT+uME5UDwdN1kg4frt40euqA+wzECkmq4t5QbveHiJepfdThgQrPw6KiSlg==" 769 | }, 770 | "@types/jsonwebtoken": { 771 | "version": "9.0.0", 772 | "resolved": "https://registry.npmjs.org/@types/jsonwebtoken/-/jsonwebtoken-9.0.0.tgz", 773 | "integrity": "sha512-mM4TkDpA9oixqg1Fv2vVpOFyIVLJjm5x4k0V+K/rEsizfjD7Tk7LKk3GTtbB7KCfP0FEHQtsZqFxYA0+sijNVg==", 774 | "requires": { 775 | "@types/node": "*" 776 | } 777 | }, 778 | "@types/node": { 779 | "version": "18.11.18", 780 | "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.18.tgz", 781 | "integrity": "sha512-DHQpWGjyQKSHj3ebjFI/wRKcqQcdR+MoFBygntYOZytCqNfkd2ZC4ARDJ2DQqhjH5p85Nnd3jhUJIXrszFX/JA==" 782 | }, 783 | "@vercel/ncc": { 784 | "version": "0.36.1", 785 | "resolved": "https://registry.npmjs.org/@vercel/ncc/-/ncc-0.36.1.tgz", 786 | "integrity": "sha512-S4cL7Taa9yb5qbv+6wLgiKVZ03Qfkc4jGRuiUQMQ8HGBD5pcNRnHeYM33zBvJE4/zJGjJJ8GScB+WmTsn9mORw==", 787 | "dev": true 788 | }, 789 | "before-after-hook": { 790 | "version": "2.2.3", 791 | "resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.2.3.tgz", 792 | "integrity": "sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ==" 793 | }, 794 | "bottleneck": { 795 | "version": "2.19.5", 796 | "resolved": "https://registry.npmjs.org/bottleneck/-/bottleneck-2.19.5.tgz", 797 | "integrity": "sha512-VHiNCbI1lKdl44tGrhNfU3lup0Tj/ZBMJB5/2ZbNXRCPuRCO7ed2mgcK4r17y+KB2EfuYuRaVlwNbAeaWGSpbw==" 798 | }, 799 | "btoa-lite": { 800 | "version": "1.0.0", 801 | "resolved": "https://registry.npmjs.org/btoa-lite/-/btoa-lite-1.0.0.tgz", 802 | "integrity": "sha512-gvW7InbIyF8AicrqWoptdW08pUxuhq8BEgowNajy9RhiE86fmGAGl+bLKo6oB8QP0CkqHLowfN0oJdKC/J6LbA==" 803 | }, 804 | "buffer-equal-constant-time": { 805 | "version": "1.0.1", 806 | "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", 807 | "integrity": "sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==" 808 | }, 809 | "deprecation": { 810 | "version": "2.3.1", 811 | "resolved": "https://registry.npmjs.org/deprecation/-/deprecation-2.3.1.tgz", 812 | "integrity": "sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==" 813 | }, 814 | "ecdsa-sig-formatter": { 815 | "version": "1.0.11", 816 | "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz", 817 | "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==", 818 | "requires": { 819 | "safe-buffer": "^5.0.1" 820 | } 821 | }, 822 | "is-plain-object": { 823 | "version": "5.0.0", 824 | "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", 825 | "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==" 826 | }, 827 | "jsonwebtoken": { 828 | "version": "9.0.0", 829 | "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-9.0.0.tgz", 830 | "integrity": "sha512-tuGfYXxkQGDPnLJ7SibiQgVgeDgfbPq2k2ICcbgqW8WxWLBAxKQM/ZCu/IT8SOSwmaYl4dpTFCW5xZv7YbbWUw==", 831 | "requires": { 832 | "jws": "^3.2.2", 833 | "lodash": "^4.17.21", 834 | "ms": "^2.1.1", 835 | "semver": "^7.3.8" 836 | } 837 | }, 838 | "jwa": { 839 | "version": "1.4.1", 840 | "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.4.1.tgz", 841 | "integrity": "sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==", 842 | "requires": { 843 | "buffer-equal-constant-time": "1.0.1", 844 | "ecdsa-sig-formatter": "1.0.11", 845 | "safe-buffer": "^5.0.1" 846 | } 847 | }, 848 | "jws": { 849 | "version": "3.2.2", 850 | "resolved": "https://registry.npmjs.org/jws/-/jws-3.2.2.tgz", 851 | "integrity": "sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==", 852 | "requires": { 853 | "jwa": "^1.4.1", 854 | "safe-buffer": "^5.0.1" 855 | } 856 | }, 857 | "lodash": { 858 | "version": "4.17.21", 859 | "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", 860 | "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" 861 | }, 862 | "lru-cache": { 863 | "version": "6.0.0", 864 | "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", 865 | "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", 866 | "requires": { 867 | "yallist": "^4.0.0" 868 | } 869 | }, 870 | "ms": { 871 | "version": "2.1.3", 872 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", 873 | "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" 874 | }, 875 | "once": { 876 | "version": "1.4.0", 877 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", 878 | "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", 879 | "requires": { 880 | "wrappy": "1" 881 | } 882 | }, 883 | "safe-buffer": { 884 | "version": "5.2.1", 885 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", 886 | "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" 887 | }, 888 | "semver": { 889 | "version": "7.5.3", 890 | "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.3.tgz", 891 | "integrity": "sha512-QBlUtyVk/5EeHbi7X0fw6liDZc7BBmEaSYn01fMU1OUYbf6GPsbTtd8WmnqbI20SeycoHSeiybkE/q1Q+qlThQ==", 892 | "requires": { 893 | "lru-cache": "^6.0.0" 894 | } 895 | }, 896 | "tunnel": { 897 | "version": "0.0.6", 898 | "resolved": "https://registry.npmjs.org/tunnel/-/tunnel-0.0.6.tgz", 899 | "integrity": "sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==" 900 | }, 901 | "universal-github-app-jwt": { 902 | "version": "1.1.1", 903 | "resolved": "https://registry.npmjs.org/universal-github-app-jwt/-/universal-github-app-jwt-1.1.1.tgz", 904 | "integrity": "sha512-G33RTLrIBMFmlDV4u4CBF7dh71eWwykck4XgaxaIVeZKOYZRAAxvcGMRFTUclVY6xoUPQvO4Ne5wKGxYm/Yy9w==", 905 | "requires": { 906 | "@types/jsonwebtoken": "^9.0.0", 907 | "jsonwebtoken": "^9.0.0" 908 | } 909 | }, 910 | "universal-user-agent": { 911 | "version": "6.0.0", 912 | "resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-6.0.0.tgz", 913 | "integrity": "sha512-isyNax3wXoKaulPDZWHQqbmIx1k2tb9fb3GGDBRxCscfYV2Ch7WxPArBsFEG8s/safwXTT7H4QGhaIkTp9447w==" 914 | }, 915 | "uuid": { 916 | "version": "8.3.2", 917 | "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", 918 | "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==" 919 | }, 920 | "wrappy": { 921 | "version": "1.0.2", 922 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", 923 | "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" 924 | }, 925 | "yallist": { 926 | "version": "4.0.0", 927 | "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", 928 | "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" 929 | } 930 | } 931 | } 932 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "app-stats-action", 3 | "private": true, 4 | "version": "1.0.0", 5 | "description": "GitHub Action to retrieve statistics for a GitHub App", 6 | "main": "index.js", 7 | "scripts": { 8 | "build": "ncc build index.js -o dist" 9 | }, 10 | "keywords": [ 11 | "action" 12 | ], 13 | "repository": "github:gr2m/app-stats-action", 14 | "author": "Gregor Martynus (https://twitter.com/gr2m)", 15 | "license": "MIT", 16 | "dependencies": { 17 | "@actions/core": "^1.10.0", 18 | "@octokit/auth-app": "^6.0.0", 19 | "@octokit/core": "^5.0.0", 20 | "@octokit/plugin-paginate-rest": "^7.1.2", 21 | "@octokit/plugin-retry": "^5.0.5", 22 | "@octokit/plugin-throttling": "^7.0.0" 23 | }, 24 | "devDependencies": { 25 | "@vercel/ncc": "^0.36.1" 26 | }, 27 | "release": { 28 | "branches": [ 29 | "main" 30 | ], 31 | "plugins": [ 32 | "@semantic-release/commit-analyzer", 33 | "@semantic-release/release-notes-generator", 34 | [ 35 | "@semantic-release/git", 36 | { 37 | "assets": [ 38 | "dist/index.js" 39 | ], 40 | "message": "build(release): compiled action for ${nextRelease.version}\n\n[skip ci]" 41 | } 42 | ], 43 | "@semantic-release/github" 44 | ] 45 | } 46 | } 47 | --------------------------------------------------------------------------------