├── .gitattributes ├── .github ├── dependabot.yml └── workflows │ ├── check-dist.yml │ ├── codeql-analysis.yml │ └── test.yml ├── .gitignore ├── .prettierignore ├── .prettierrc.json ├── CODEOWNERS ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── LICENSE ├── README.md ├── SECURITY.md ├── SUPPORT.md ├── __tests__ ├── generate-sbom.test.ts └── mock-sbom.json ├── action.yml ├── dist ├── index.js └── licenses.txt ├── eslint.config.js ├── jest.config.js ├── package-lock.json ├── package.json ├── src ├── generate-sbom.ts ├── main.ts └── utils.ts ├── tsconfig.json └── tsconfig.test.json /.gitattributes: -------------------------------------------------------------------------------- 1 | dist/** -diff linguist-generated=true -------------------------------------------------------------------------------- /.github/dependabot.yml: -------------------------------------------------------------------------------- 1 | version: 2 2 | updates: 3 | - package-ecosystem: github-actions 4 | directory: / 5 | schedule: 6 | interval: daily 7 | 8 | - package-ecosystem: npm 9 | directory: / 10 | schedule: 11 | interval: daily 12 | -------------------------------------------------------------------------------- /.github/workflows/check-dist.yml: -------------------------------------------------------------------------------- 1 | # `dist/index.js` is a special file in Actions. 2 | # When you reference an action with `uses:` in a workflow, 3 | # `index.js` is the code that will run. 4 | # For our project, we generate this file through a build process from other source files. 5 | # We need to make sure the checked-in `index.js` actually matches what we expect it to be. 6 | name: Check dist/ 7 | permissions: 8 | contents: read 9 | 10 | on: 11 | push: 12 | branches: 13 | - main 14 | paths-ignore: 15 | - '**.md' 16 | pull_request: 17 | paths-ignore: 18 | - '**.md' 19 | workflow_dispatch: 20 | 21 | jobs: 22 | check-dist: 23 | runs-on: ubuntu-latest 24 | 25 | steps: 26 | - uses: actions/checkout@v4 27 | 28 | - name: Set Node.js 20.x 29 | uses: actions/setup-node@v4.4.0 30 | with: 31 | node-version: 20.x 32 | 33 | - name: Install dependencies 34 | run: npm ci 35 | 36 | - name: Rebuild the dist/ directory 37 | run: | 38 | npm run build 39 | npm run package 40 | 41 | - name: Compare the expected and actual dist/ directories 42 | run: | 43 | if [ "$(git diff --ignore-space-at-eol dist/ | wc -l)" -gt "0" ]; then 44 | echo "Detected uncommitted changes after build. See status below:" 45 | git diff 46 | exit 1 47 | fi 48 | id: diff 49 | 50 | # If index.js was different than expected, upload the expected version as an artifact 51 | - uses: actions/upload-artifact@v4 52 | if: ${{ failure() && steps.diff.conclusion == 'failure' }} 53 | with: 54 | name: dist 55 | path: dist/ 56 | -------------------------------------------------------------------------------- /.github/workflows/codeql-analysis.yml: -------------------------------------------------------------------------------- 1 | # For most projects, this workflow file will not need changing; you simply need 2 | # to commit it to your repository. 3 | # 4 | # You may wish to alter this file to override the set of languages analyzed, 5 | # or to provide custom queries or build logic. 6 | # 7 | # ******** NOTE ******** 8 | # We have attempted to detect the languages in your repository. Please check 9 | # the `language` matrix defined below to confirm you have the correct set of 10 | # supported CodeQL languages. 11 | # 12 | name: "CodeQL" 13 | 14 | on: 15 | push: 16 | branches: [ main ] 17 | pull_request: 18 | # The branches below must be a subset of the branches above 19 | branches: [ main ] 20 | schedule: 21 | - cron: '31 7 * * 3' 22 | 23 | jobs: 24 | analyze: 25 | name: Analyze 26 | runs-on: ubuntu-latest 27 | permissions: 28 | actions: read 29 | contents: read 30 | security-events: write 31 | 32 | strategy: 33 | fail-fast: false 34 | matrix: 35 | language: [ 'TypeScript' ] 36 | # CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python', 'ruby' ] 37 | # Learn more about CodeQL language support at https://git.io/codeql-language-support 38 | 39 | steps: 40 | - name: Checkout repository 41 | uses: actions/checkout@v4 42 | 43 | # Initializes the CodeQL tools for scanning. 44 | - name: Initialize CodeQL 45 | uses: github/codeql-action/init@v3 46 | with: 47 | languages: ${{ matrix.language }} 48 | source-root: src 49 | # If you wish to specify custom queries, you can do so here or in a config file. 50 | # By default, queries listed here will override any specified in a config file. 51 | # Prefix the list here with "+" to use these queries and those in the config file. 52 | # queries: ./path/to/local/query, your-org/your-repo/queries@main 53 | 54 | # Autobuild attempts to build any compiled languages (C/C++, C#, or Java). 55 | # If this step fails, then you should remove it and run the build manually (see below) 56 | - name: Autobuild 57 | uses: github/codeql-action/autobuild@v3 58 | 59 | # ℹ️ Command-line programs to run using the OS shell. 60 | # 📚 https://git.io/JvXDl 61 | 62 | # ✏️ If the Autobuild fails above, remove it and uncomment the following three lines 63 | # and modify them (or add more) to build your code if your project 64 | # uses a compiled language 65 | 66 | #- run: | 67 | # make bootstrap 68 | # make release 69 | 70 | - name: Perform CodeQL Analysis 71 | uses: github/codeql-action/analyze@v3 72 | -------------------------------------------------------------------------------- /.github/workflows/test.yml: -------------------------------------------------------------------------------- 1 | name: 'build-test' 2 | permissions: 3 | contents: read 4 | actions: read 5 | packages: write 6 | on: # rebuild any PRs and main branch changes 7 | pull_request: 8 | push: 9 | branches: 10 | - main 11 | - 'releases/*' 12 | 13 | jobs: 14 | build: # make sure build/ci work properly 15 | runs-on: ubuntu-latest 16 | steps: 17 | - uses: actions/checkout@v4 18 | - run: | 19 | npm install 20 | - run: | 21 | npm run all 22 | test: # make sure the action works on a clean machine without building 23 | runs-on: ubuntu-latest 24 | steps: 25 | - uses: actions/checkout@v4 26 | - uses: ./ 27 | id: gensbom 28 | name: Generate the SBOM 29 | - run: ls -la 30 | - run: echo ${{ steps.gensbom.outputs.fileName }} 31 | - uses: actions/upload-artifact@v4 32 | with: 33 | name: sbom 34 | path: ${{ steps.gensbom.outputs.fileName }} -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Dependency directory 2 | node_modules 3 | 4 | # Rest pulled from https://github.com/github/gitignore/blob/master/Node.gitignore 5 | # Logs 6 | logs 7 | *.log 8 | npm-debug.log* 9 | yarn-debug.log* 10 | yarn-error.log* 11 | lerna-debug.log* 12 | 13 | # Diagnostic reports (https://nodejs.org/api/report.html) 14 | report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json 15 | 16 | # Runtime data 17 | pids 18 | *.pid 19 | *.seed 20 | *.pid.lock 21 | 22 | # Directory for instrumented libs generated by jscoverage/JSCover 23 | lib-cov 24 | 25 | # Coverage directory used by tools like istanbul 26 | coverage 27 | *.lcov 28 | 29 | # nyc test coverage 30 | .nyc_output 31 | 32 | # Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) 33 | .grunt 34 | 35 | # Bower dependency directory (https://bower.io/) 36 | bower_components 37 | 38 | # node-waf configuration 39 | .lock-wscript 40 | 41 | # Compiled binary addons (https://nodejs.org/api/addons.html) 42 | build/Release 43 | 44 | # Dependency directories 45 | jspm_packages/ 46 | 47 | # TypeScript v1 declaration files 48 | typings/ 49 | 50 | # TypeScript cache 51 | *.tsbuildinfo 52 | 53 | # Optional npm cache directory 54 | .npm 55 | 56 | # Optional eslint cache 57 | .eslintcache 58 | 59 | # Optional REPL history 60 | .node_repl_history 61 | 62 | # Output of 'npm pack' 63 | *.tgz 64 | 65 | # Yarn Integrity file 66 | .yarn-integrity 67 | 68 | # dotenv environment variables file 69 | .env 70 | .env.test 71 | 72 | # parcel-bundler cache (https://parceljs.org/) 73 | .cache 74 | 75 | # next.js build output 76 | .next 77 | 78 | # nuxt.js build output 79 | .nuxt 80 | 81 | # vuepress build output 82 | .vuepress/dist 83 | 84 | # Serverless directories 85 | .serverless/ 86 | 87 | # FuseBox cache 88 | .fusebox/ 89 | 90 | # DynamoDB Local files 91 | .dynamodb/ 92 | 93 | # OS metadata 94 | .DS_Store 95 | Thumbs.db 96 | 97 | # Ignore built ts files 98 | __tests__/runner/* 99 | __test__/*.js 100 | lib/**/* -------------------------------------------------------------------------------- /.prettierignore: -------------------------------------------------------------------------------- 1 | dist/ 2 | lib/ 3 | node_modules/ -------------------------------------------------------------------------------- /.prettierrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "printWidth": 80, 3 | "tabWidth": 2, 4 | "useTabs": false, 5 | "semi": false, 6 | "singleQuote": true, 7 | "trailingComma": "none", 8 | "bracketSpacing": false, 9 | "arrowParens": "avoid" 10 | } 11 | -------------------------------------------------------------------------------- /CODEOWNERS: -------------------------------------------------------------------------------- 1 | * @colindembovsky 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, gender identity and expression, level of experience, 9 | nationality, personal appearance, race, religion, or sexual identity and 10 | 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 opensource@github.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 [http://contributor-covenant.org/version/1/4][version] 72 | 73 | [homepage]: http://contributor-covenant.org 74 | [version]: http://contributor-covenant.org/version/1/4/ -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | ## Contributing 2 | 3 | [fork]: https://github.com/github/REPO/fork 4 | [pr]: https://github.com/github/REPO/compare 5 | [style]: https://github.com/styleguide/ruby 6 | [code-of-conduct]: CODE_OF_CONDUCT.md 7 | 8 | Hi there! We're thrilled that you'd like to contribute to this project. Your help is essential for keeping it great. 9 | 10 | Contributions to this project are [released](https://help.github.com/articles/github-terms-of-service/#6-contributions-under-repository-license) to the public under the [project's open source license](LICENSE.md). 11 | 12 | Please note that this project is released with a [Contributor Code of Conduct](CODE_OF_CONDUCT.md). By participating in this project you agree to abide by its terms. 13 | 14 | ## Submitting a pull request 15 | 16 | 1. [Fork][fork] and clone the repository 17 | 1. Configure and install the dependencies: `npm install` 18 | 1. Make sure the tests pass on your machine: `npm run build && npm run test` 19 | 1. Create a new branch: `git checkout -b my-branch-name` 20 | 1. Make your change, add tests, and make sure the tests still pass 21 | 1. Push to your fork and [submit a pull request][pr] 22 | 1. Pat your self on the back and wait for your pull request to be reviewed and merged. 23 | 24 | Here are a few things you can do that will increase the likelihood of your pull request being accepted: 25 | 26 | - Run `npm all` to make sure your code is prettified and adheres to the linting rules. 27 | - Write tests. 28 | - Keep your change as focused as possible. If there are multiple changes you would like to make that are not dependent upon each other, consider submitting them as separate pull requests. 29 | - Write a [good commit message](http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html). 30 | 31 | ## Resources 32 | 33 | - [How to Contribute to Open Source](https://opensource.guide/how-to-contribute/) 34 | - [Using Pull Requests](https://help.github.com/articles/about-pull-requests/) 35 | - [GitHub Help](https://help.github.com) 36 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | 2 | The MIT License (MIT) 3 | 4 | Copyright (c) 2018 GitHub, Inc. and contributors 5 | 6 | Permission is hereby granted, free of charge, to any person obtaining a copy 7 | of this software and associated documentation files (the "Software"), to deal 8 | in the Software without restriction, including without limitation the rights 9 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | copies of the Software, and to permit persons to whom the Software is 11 | furnished to do so, subject to the following conditions: 12 | 13 | The above copyright notice and this permission notice shall be included in 14 | all copies or substantial portions of the Software. 15 | 16 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 22 | THE SOFTWARE. -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 |
4 | 5 | # Generate SBOM Action 6 | 7 | This action uses the REST API call to generate the SBOM for the repo (on the default branch). You can then use the `fileName` output to upload the file as an artifact. 8 | 9 | ## Usage 10 | 11 | You can use the workflow as follows: 12 | 13 | ```yaml 14 | gen-sbom: 15 | runs-on: ubuntu-latest 16 | steps: 17 | - uses: actions/checkout@v4 18 | - uses: advanced-security/generate-sbom-action@v1 19 | id: gensbom 20 | - uses: actions/upload-artifact@v4 21 | with: 22 | name: sbom 23 | path: ${{ steps.gensbom.outputs.fileName }} 24 | ``` 25 | -------------------------------------------------------------------------------- /SECURITY.md: -------------------------------------------------------------------------------- 1 | Thanks for helping make GitHub safe for everyone. 2 | 3 | # Security 4 | 5 | GitHub takes the security of our software products and services seriously, including all of the open source code repositories managed through our GitHub organizations, such as [GitHub](https://github.com/GitHub). 6 | 7 | Even though [open source repositories are outside of the scope of our bug bounty program](https://bounty.github.com/index.html#scope) and therefore not eligible for bounty rewards, we will ensure that your finding gets passed along to the appropriate maintainers for remediation. 8 | 9 | ## Reporting Security Issues 10 | 11 | If you believe you have found a security vulnerability in any GitHub-owned repository, please report it to us through coordinated disclosure. 12 | 13 | **Please do not report security vulnerabilities through public GitHub issues, discussions, or pull requests.** 14 | 15 | Instead, please send an email to opensource-security[@]github.com. 16 | 17 | Please include as much of the information listed below as you can to help us better understand and resolve the issue: 18 | 19 | * The type of issue (e.g., buffer overflow, SQL injection, or cross-site scripting) 20 | * Full paths of source file(s) related to the manifestation of the issue 21 | * The location of the affected source code (tag/branch/commit or direct URL) 22 | * Any special configuration required to reproduce the issue 23 | * Step-by-step instructions to reproduce the issue 24 | * Proof-of-concept or exploit code (if possible) 25 | * Impact of the issue, including how an attacker might exploit the issue 26 | 27 | This information will help us triage your report more quickly. 28 | 29 | ## Policy 30 | 31 | See [GitHub's Safe Harbor Policy](https://docs.github.com/en/github/site-policy/github-bug-bounty-program-legal-safe-harbor#1-safe-harbor-terms) -------------------------------------------------------------------------------- /SUPPORT.md: -------------------------------------------------------------------------------- 1 | 2 | # Support 3 | 4 | ## How to file issues and get help 5 | 6 | This project uses GitHub issues to track bugs and feature requests. Please search the existing issues before filing new issues to avoid duplicates. For new issues, file your bug or feature request as a new issue. 7 | 8 | For help or questions about using this project, please reach out to @colindembovsky. 9 | 10 | - **generate-sbom-action** is under active development and maintained by GitHub staff **AND THE COMMUNITY**. We will do our best to respond to support, feature requests, and community questions in a timely manner. 11 | 12 | ## GitHub Support Policy 13 | 14 | Support for this project is limited to the resources listed above. -------------------------------------------------------------------------------- /__tests__/generate-sbom.test.ts: -------------------------------------------------------------------------------- 1 | import {describe, expect, jest, it, beforeEach} from '@jest/globals' 2 | import {generateSBOM} from '../src/generate-sbom' 3 | import fs from 'fs' 4 | 5 | // Mock the Octokit import 6 | jest.mock('octokit', () => ({ 7 | Octokit: jest.fn().mockImplementation(() => ({ 8 | request: jest.fn() 9 | })) 10 | })) 11 | 12 | const mockSBOM = fs.readFileSync('./__tests__/mock-sbom.json', 'utf-8') 13 | 14 | // Mock fs.writeFile 15 | const mockWriteFile = jest 16 | .spyOn(fs, 'writeFile') 17 | .mockImplementation((f, d, callback: any) => { 18 | console.log('[mock] writing file') 19 | callback(null) 20 | }) 21 | 22 | describe('generateSBOM', () => { 23 | beforeEach(() => { 24 | jest.clearAllMocks() 25 | }) 26 | 27 | it('should retrieve the SBOM for a repository', async () => { 28 | const token = 'test-token' 29 | const owner = 'octocat' 30 | const repo = 'hello-world' 31 | const sha = 'fe43fdf' 32 | 33 | // Create a mock Octokit instance 34 | const mockRequest = (jest.fn() as any).mockResolvedValue({ 35 | data: { 36 | sbom: JSON.parse(mockSBOM) 37 | } 38 | }) 39 | 40 | const mockOctokit = { 41 | request: mockRequest 42 | } 43 | 44 | await generateSBOM(token, owner, repo, sha, mockOctokit as any) 45 | 46 | expect(mockRequest).toHaveBeenCalledWith( 47 | 'GET /repos/{owner}/{repo}/dependency-graph/sbom', 48 | { 49 | owner, 50 | repo, 51 | headers: { 52 | 'X-GitHub-Api-Version': '2022-11-28' 53 | } 54 | } 55 | ) 56 | 57 | expect(mockWriteFile).toHaveBeenCalledWith( 58 | `sbom-${owner}-${repo}-${sha}.json`, 59 | JSON.stringify(JSON.parse(mockSBOM)), 60 | expect.any(Function) 61 | ) 62 | }) 63 | }) 64 | -------------------------------------------------------------------------------- /__tests__/mock-sbom.json: -------------------------------------------------------------------------------- 1 | { 2 | "SPDXID": "SPDXRef-DOCUMENT", 3 | "spdxVersion": "SPDX-2.3", 4 | "creationInfo": { 5 | "created": "2023-04-20T19:03:56Z", 6 | "creators": [ 7 | "Tool: GitHub.com-Dependency-Graph" 8 | ] 9 | }, 10 | "name": "com.github.advanced-security/generate-sbom-action", 11 | "dataLicense": "CC0-1.0", 12 | "documentDescribes": [ 13 | "com.github.advanced-security/generate-sbom-action" 14 | ], 15 | "documentNamespace": "https://github.com/advanced-security/generate-sbom-action/dependency_graph/sbom-521cb2fccca64e4f", 16 | "packages": [ 17 | { 18 | "SPDXID": "SPDXRef-npm-@actions/core", 19 | "name": "npm:@actions/core", 20 | "versionInfo": "^ 1.10.0", 21 | "downloadLocation": "NOASSERTION", 22 | "filesAnalyzed": false, 23 | "licenseConcluded": "NOASSERTION", 24 | "licenseDeclared": "NOASSERTION", 25 | "supplier": "NOASSERTION" 26 | }, 27 | { 28 | "SPDXID": "SPDXRef-npm-@types/node", 29 | "name": "npm:@types/node", 30 | "versionInfo": "^ 18.15.0", 31 | "downloadLocation": "NOASSERTION", 32 | "filesAnalyzed": false, 33 | "licenseConcluded": "NOASSERTION", 34 | "licenseDeclared": "NOASSERTION", 35 | "supplier": "NOASSERTION" 36 | } 37 | ] 38 | } -------------------------------------------------------------------------------- /action.yml: -------------------------------------------------------------------------------- 1 | name: 'Generate SBOM' 2 | description: 'Generate an SBOM via the REST API' 3 | author: 'Colin Dembovsky' 4 | branding: 5 | color: green 6 | icon: shield 7 | inputs: 8 | token: 9 | required: false 10 | description: 'GitHub token with permissions to read SBOM' 11 | default: ${{ github.token }} 12 | outputs: 13 | fileName: 14 | description: The filename of the SBOM generated 15 | runs: 16 | using: 'node20' 17 | main: 'dist/index.js' 18 | -------------------------------------------------------------------------------- /dist/licenses.txt: -------------------------------------------------------------------------------- 1 | @actions/core 2 | MIT 3 | The MIT License (MIT) 4 | 5 | Copyright 2019 GitHub 6 | 7 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 8 | 9 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 10 | 11 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 12 | 13 | @actions/exec 14 | MIT 15 | The MIT License (MIT) 16 | 17 | Copyright 2019 GitHub 18 | 19 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 20 | 21 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 22 | 23 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 24 | 25 | @actions/http-client 26 | MIT 27 | Actions Http Client for Node.js 28 | 29 | Copyright (c) GitHub, Inc. 30 | 31 | All rights reserved. 32 | 33 | MIT License 34 | 35 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and 36 | associated documentation files (the "Software"), to deal in the Software without restriction, 37 | including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, 38 | and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, 39 | subject to the following conditions: 40 | 41 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 42 | 43 | THE SOFTWARE IS PROVIDED *AS IS*, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT 44 | LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN 45 | NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 46 | WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE 47 | SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 48 | 49 | 50 | @actions/io 51 | MIT 52 | The MIT License (MIT) 53 | 54 | Copyright 2019 GitHub 55 | 56 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 57 | 58 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 59 | 60 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 61 | 62 | @fastify/busboy 63 | MIT 64 | Copyright Brian White. All rights reserved. 65 | 66 | Permission is hereby granted, free of charge, to any person obtaining a copy 67 | of this software and associated documentation files (the "Software"), to 68 | deal in the Software without restriction, including without limitation the 69 | rights to use, copy, modify, merge, publish, distribute, sublicense, and/or 70 | sell copies of the Software, and to permit persons to whom the Software is 71 | furnished to do so, subject to the following conditions: 72 | 73 | The above copyright notice and this permission notice shall be included in 74 | all copies or substantial portions of the Software. 75 | 76 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 77 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 78 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 79 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 80 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 81 | FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS 82 | IN THE SOFTWARE. 83 | 84 | @octokit/app 85 | MIT 86 | The MIT License 87 | 88 | Copyright (c) 2018 Octokit contributors 89 | 90 | Permission is hereby granted, free of charge, to any person obtaining a copy 91 | of this software and associated documentation files (the "Software"), to deal 92 | in the Software without restriction, including without limitation the rights 93 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 94 | copies of the Software, and to permit persons to whom the Software is 95 | furnished to do so, subject to the following conditions: 96 | 97 | The above copyright notice and this permission notice shall be included in 98 | all copies or substantial portions of the Software. 99 | 100 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 101 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 102 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 103 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 104 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 105 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 106 | THE SOFTWARE. 107 | 108 | 109 | @octokit/auth-app 110 | MIT 111 | The MIT License 112 | 113 | Copyright (c) 2019 Octokit contributors 114 | 115 | Permission is hereby granted, free of charge, to any person obtaining a copy 116 | of this software and associated documentation files (the "Software"), to deal 117 | in the Software without restriction, including without limitation the rights 118 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 119 | copies of the Software, and to permit persons to whom the Software is 120 | furnished to do so, subject to the following conditions: 121 | 122 | The above copyright notice and this permission notice shall be included in 123 | all copies or substantial portions of the Software. 124 | 125 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 126 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 127 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 128 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 129 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 130 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 131 | THE SOFTWARE. 132 | 133 | 134 | @octokit/auth-oauth-app 135 | MIT 136 | The MIT License 137 | 138 | Copyright (c) 2019 Octokit contributors 139 | 140 | Permission is hereby granted, free of charge, to any person obtaining a copy 141 | of this software and associated documentation files (the "Software"), to deal 142 | in the Software without restriction, including without limitation the rights 143 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 144 | copies of the Software, and to permit persons to whom the Software is 145 | furnished to do so, subject to the following conditions: 146 | 147 | The above copyright notice and this permission notice shall be included in 148 | all copies or substantial portions of the Software. 149 | 150 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 151 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 152 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 153 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 154 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 155 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 156 | THE SOFTWARE. 157 | 158 | 159 | @octokit/auth-oauth-device 160 | MIT 161 | MIT License 162 | 163 | Copyright (c) 2021 Octokit contributors 164 | 165 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 166 | 167 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 168 | 169 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 170 | 171 | 172 | @octokit/auth-oauth-user 173 | MIT 174 | MIT License 175 | 176 | Copyright (c) 2021 Octokit contributors 177 | 178 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 179 | 180 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 181 | 182 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 183 | 184 | 185 | @octokit/auth-token 186 | MIT 187 | The MIT License 188 | 189 | Copyright (c) 2019 Octokit contributors 190 | 191 | Permission is hereby granted, free of charge, to any person obtaining a copy 192 | of this software and associated documentation files (the "Software"), to deal 193 | in the Software without restriction, including without limitation the rights 194 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 195 | copies of the Software, and to permit persons to whom the Software is 196 | furnished to do so, subject to the following conditions: 197 | 198 | The above copyright notice and this permission notice shall be included in 199 | all copies or substantial portions of the Software. 200 | 201 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 202 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 203 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 204 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 205 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 206 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 207 | THE SOFTWARE. 208 | 209 | 210 | @octokit/auth-unauthenticated 211 | MIT 212 | The MIT License 213 | 214 | Copyright (c) 2020 Octokit contributors 215 | 216 | Permission is hereby granted, free of charge, to any person obtaining a copy 217 | of this software and associated documentation files (the "Software"), to deal 218 | in the Software without restriction, including without limitation the rights 219 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 220 | copies of the Software, and to permit persons to whom the Software is 221 | furnished to do so, subject to the following conditions: 222 | 223 | The above copyright notice and this permission notice shall be included in 224 | all copies or substantial portions of the Software. 225 | 226 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 227 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 228 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 229 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 230 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 231 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 232 | THE SOFTWARE. 233 | 234 | 235 | @octokit/core 236 | MIT 237 | The MIT License 238 | 239 | Copyright (c) 2019 Octokit contributors 240 | 241 | Permission is hereby granted, free of charge, to any person obtaining a copy 242 | of this software and associated documentation files (the "Software"), to deal 243 | in the Software without restriction, including without limitation the rights 244 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 245 | copies of the Software, and to permit persons to whom the Software is 246 | furnished to do so, subject to the following conditions: 247 | 248 | The above copyright notice and this permission notice shall be included in 249 | all copies or substantial portions of the Software. 250 | 251 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 252 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 253 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 254 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 255 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 256 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 257 | THE SOFTWARE. 258 | 259 | 260 | @octokit/endpoint 261 | MIT 262 | The MIT License 263 | 264 | Copyright (c) 2018 Octokit contributors 265 | 266 | Permission is hereby granted, free of charge, to any person obtaining a copy 267 | of this software and associated documentation files (the "Software"), to deal 268 | in the Software without restriction, including without limitation the rights 269 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 270 | copies of the Software, and to permit persons to whom the Software is 271 | furnished to do so, subject to the following conditions: 272 | 273 | The above copyright notice and this permission notice shall be included in 274 | all copies or substantial portions of the Software. 275 | 276 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 277 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 278 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 279 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 280 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 281 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 282 | THE SOFTWARE. 283 | 284 | 285 | @octokit/graphql 286 | MIT 287 | The MIT License 288 | 289 | Copyright (c) 2018 Octokit contributors 290 | 291 | Permission is hereby granted, free of charge, to any person obtaining a copy 292 | of this software and associated documentation files (the "Software"), to deal 293 | in the Software without restriction, including without limitation the rights 294 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 295 | copies of the Software, and to permit persons to whom the Software is 296 | furnished to do so, subject to the following conditions: 297 | 298 | The above copyright notice and this permission notice shall be included in 299 | all copies or substantial portions of the Software. 300 | 301 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 302 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 303 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 304 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 305 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 306 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 307 | THE SOFTWARE. 308 | 309 | 310 | @octokit/oauth-app 311 | MIT 312 | MIT License Copyright (c) 2020 Octokit contributors 313 | 314 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 315 | 316 | The above copyright notice and this permission notice (including the next paragraph) shall be included in all copies or substantial portions of the Software. 317 | 318 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 319 | 320 | 321 | @octokit/oauth-authorization-url 322 | MIT 323 | The MIT License 324 | 325 | Copyright (c) 2019 Octokit contributors 326 | 327 | Permission is hereby granted, free of charge, to any person obtaining a copy 328 | of this software and associated documentation files (the "Software"), to deal 329 | in the Software without restriction, including without limitation the rights 330 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 331 | copies of the Software, and to permit persons to whom the Software is 332 | furnished to do so, subject to the following conditions: 333 | 334 | The above copyright notice and this permission notice shall be included in 335 | all copies or substantial portions of the Software. 336 | 337 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 338 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 339 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 340 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 341 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 342 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 343 | THE SOFTWARE. 344 | 345 | 346 | @octokit/oauth-methods 347 | MIT 348 | MIT License 349 | 350 | Copyright (c) 2021 Octokit contributors 351 | 352 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 353 | 354 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 355 | 356 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 357 | 358 | 359 | @octokit/plugin-paginate-graphql 360 | MIT 361 | MIT License Copyright (c) 2019 Octokit contributors 362 | 363 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 364 | 365 | The above copyright notice and this permission notice (including the next paragraph) shall be included in all copies or substantial portions of the Software. 366 | 367 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 368 | 369 | 370 | @octokit/plugin-paginate-rest 371 | MIT 372 | MIT License Copyright (c) 2019 Octokit contributors 373 | 374 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 375 | 376 | The above copyright notice and this permission notice (including the next paragraph) shall be included in all copies or substantial portions of the Software. 377 | 378 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 379 | 380 | 381 | @octokit/plugin-rest-endpoint-methods 382 | MIT 383 | MIT License Copyright (c) 2019 Octokit contributors 384 | 385 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 386 | 387 | The above copyright notice and this permission notice (including the next paragraph) shall be included in all copies or substantial portions of the Software. 388 | 389 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 390 | 391 | 392 | @octokit/plugin-retry 393 | MIT 394 | MIT License 395 | 396 | Copyright (c) 2018 Octokit contributors 397 | 398 | Permission is hereby granted, free of charge, to any person obtaining a copy 399 | of this software and associated documentation files (the "Software"), to deal 400 | in the Software without restriction, including without limitation the rights 401 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 402 | copies of the Software, and to permit persons to whom the Software is 403 | furnished to do so, subject to the following conditions: 404 | 405 | The above copyright notice and this permission notice shall be included in all 406 | copies or substantial portions of the Software. 407 | 408 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 409 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 410 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 411 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 412 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 413 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 414 | SOFTWARE. 415 | 416 | 417 | @octokit/plugin-throttling 418 | MIT 419 | The MIT License 420 | 421 | Copyright (c) 2018 Octokit contributors 422 | 423 | Permission is hereby granted, free of charge, to any person obtaining a copy 424 | of this software and associated documentation files (the "Software"), to deal 425 | in the Software without restriction, including without limitation the rights 426 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 427 | copies of the Software, and to permit persons to whom the Software is 428 | furnished to do so, subject to the following conditions: 429 | 430 | The above copyright notice and this permission notice shall be included in 431 | all copies or substantial portions of the Software. 432 | 433 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 434 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 435 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 436 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 437 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 438 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 439 | THE SOFTWARE. 440 | 441 | 442 | @octokit/request 443 | MIT 444 | The MIT License 445 | 446 | Copyright (c) 2018 Octokit contributors 447 | 448 | Permission is hereby granted, free of charge, to any person obtaining a copy 449 | of this software and associated documentation files (the "Software"), to deal 450 | in the Software without restriction, including without limitation the rights 451 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 452 | copies of the Software, and to permit persons to whom the Software is 453 | furnished to do so, subject to the following conditions: 454 | 455 | The above copyright notice and this permission notice shall be included in 456 | all copies or substantial portions of the Software. 457 | 458 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 459 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 460 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 461 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 462 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 463 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 464 | THE SOFTWARE. 465 | 466 | 467 | @octokit/request-error 468 | MIT 469 | The MIT License 470 | 471 | Copyright (c) 2019 Octokit contributors 472 | 473 | Permission is hereby granted, free of charge, to any person obtaining a copy 474 | of this software and associated documentation files (the "Software"), to deal 475 | in the Software without restriction, including without limitation the rights 476 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 477 | copies of the Software, and to permit persons to whom the Software is 478 | furnished to do so, subject to the following conditions: 479 | 480 | The above copyright notice and this permission notice shall be included in 481 | all copies or substantial portions of the Software. 482 | 483 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 484 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 485 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 486 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 487 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 488 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 489 | THE SOFTWARE. 490 | 491 | 492 | @octokit/webhooks 493 | MIT 494 | Copyright (c) GitHub 2025 - Licensed as MIT. 495 | 496 | Permission is hereby granted, free of charge, to any person obtaining 497 | a copy of this software and associated documentation files (the 498 | "Software"), to deal in the Software without restriction, including 499 | without limitation the rights to use, copy, modify, merge, publish, 500 | distribute, sublicense, and/or sell copies of the Software, and to 501 | permit persons to whom the Software is furnished to do so, subject to 502 | the following conditions: 503 | 504 | The above copyright notice and this permission notice shall be 505 | included in all copies or substantial portions of the Software. 506 | 507 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 508 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 509 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 510 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE 511 | LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 512 | OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 513 | WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 514 | 515 | 516 | @octokit/webhooks-methods 517 | MIT 518 | MIT License 519 | 520 | Copyright (c) 2021 Octokit contributors 521 | 522 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 523 | 524 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 525 | 526 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 527 | 528 | 529 | before-after-hook 530 | Apache-2.0 531 | Apache License 532 | Version 2.0, January 2004 533 | http://www.apache.org/licenses/ 534 | 535 | TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 536 | 537 | 1. Definitions. 538 | 539 | "License" shall mean the terms and conditions for use, reproduction, 540 | and distribution as defined by Sections 1 through 9 of this document. 541 | 542 | "Licensor" shall mean the copyright owner or entity authorized by 543 | the copyright owner that is granting the License. 544 | 545 | "Legal Entity" shall mean the union of the acting entity and all 546 | other entities that control, are controlled by, or are under common 547 | control with that entity. For the purposes of this definition, 548 | "control" means (i) the power, direct or indirect, to cause the 549 | direction or management of such entity, whether by contract or 550 | otherwise, or (ii) ownership of fifty percent (50%) or more of the 551 | outstanding shares, or (iii) beneficial ownership of such entity. 552 | 553 | "You" (or "Your") shall mean an individual or Legal Entity 554 | exercising permissions granted by this License. 555 | 556 | "Source" form shall mean the preferred form for making modifications, 557 | including but not limited to software source code, documentation 558 | source, and configuration files. 559 | 560 | "Object" form shall mean any form resulting from mechanical 561 | transformation or translation of a Source form, including but 562 | not limited to compiled object code, generated documentation, 563 | and conversions to other media types. 564 | 565 | "Work" shall mean the work of authorship, whether in Source or 566 | Object form, made available under the License, as indicated by a 567 | copyright notice that is included in or attached to the work 568 | (an example is provided in the Appendix below). 569 | 570 | "Derivative Works" shall mean any work, whether in Source or Object 571 | form, that is based on (or derived from) the Work and for which the 572 | editorial revisions, annotations, elaborations, or other modifications 573 | represent, as a whole, an original work of authorship. For the purposes 574 | of this License, Derivative Works shall not include works that remain 575 | separable from, or merely link (or bind by name) to the interfaces of, 576 | the Work and Derivative Works thereof. 577 | 578 | "Contribution" shall mean any work of authorship, including 579 | the original version of the Work and any modifications or additions 580 | to that Work or Derivative Works thereof, that is intentionally 581 | submitted to Licensor for inclusion in the Work by the copyright owner 582 | or by an individual or Legal Entity authorized to submit on behalf of 583 | the copyright owner. For the purposes of this definition, "submitted" 584 | means any form of electronic, verbal, or written communication sent 585 | to the Licensor or its representatives, including but not limited to 586 | communication on electronic mailing lists, source code control systems, 587 | and issue tracking systems that are managed by, or on behalf of, the 588 | Licensor for the purpose of discussing and improving the Work, but 589 | excluding communication that is conspicuously marked or otherwise 590 | designated in writing by the copyright owner as "Not a Contribution." 591 | 592 | "Contributor" shall mean Licensor and any individual or Legal Entity 593 | on behalf of whom a Contribution has been received by Licensor and 594 | subsequently incorporated within the Work. 595 | 596 | 2. Grant of Copyright License. Subject to the terms and conditions of 597 | this License, each Contributor hereby grants to You a perpetual, 598 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 599 | copyright license to reproduce, prepare Derivative Works of, 600 | publicly display, publicly perform, sublicense, and distribute the 601 | Work and such Derivative Works in Source or Object form. 602 | 603 | 3. Grant of Patent License. Subject to the terms and conditions of 604 | this License, each Contributor hereby grants to You a perpetual, 605 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 606 | (except as stated in this section) patent license to make, have made, 607 | use, offer to sell, sell, import, and otherwise transfer the Work, 608 | where such license applies only to those patent claims licensable 609 | by such Contributor that are necessarily infringed by their 610 | Contribution(s) alone or by combination of their Contribution(s) 611 | with the Work to which such Contribution(s) was submitted. If You 612 | institute patent litigation against any entity (including a 613 | cross-claim or counterclaim in a lawsuit) alleging that the Work 614 | or a Contribution incorporated within the Work constitutes direct 615 | or contributory patent infringement, then any patent licenses 616 | granted to You under this License for that Work shall terminate 617 | as of the date such litigation is filed. 618 | 619 | 4. Redistribution. You may reproduce and distribute copies of the 620 | Work or Derivative Works thereof in any medium, with or without 621 | modifications, and in Source or Object form, provided that You 622 | meet the following conditions: 623 | 624 | (a) You must give any other recipients of the Work or 625 | Derivative Works a copy of this License; and 626 | 627 | (b) You must cause any modified files to carry prominent notices 628 | stating that You changed the files; and 629 | 630 | (c) You must retain, in the Source form of any Derivative Works 631 | that You distribute, all copyright, patent, trademark, and 632 | attribution notices from the Source form of the Work, 633 | excluding those notices that do not pertain to any part of 634 | the Derivative Works; and 635 | 636 | (d) If the Work includes a "NOTICE" text file as part of its 637 | distribution, then any Derivative Works that You distribute must 638 | include a readable copy of the attribution notices contained 639 | within such NOTICE file, excluding those notices that do not 640 | pertain to any part of the Derivative Works, in at least one 641 | of the following places: within a NOTICE text file distributed 642 | as part of the Derivative Works; within the Source form or 643 | documentation, if provided along with the Derivative Works; or, 644 | within a display generated by the Derivative Works, if and 645 | wherever such third-party notices normally appear. The contents 646 | of the NOTICE file are for informational purposes only and 647 | do not modify the License. You may add Your own attribution 648 | notices within Derivative Works that You distribute, alongside 649 | or as an addendum to the NOTICE text from the Work, provided 650 | that such additional attribution notices cannot be construed 651 | as modifying the License. 652 | 653 | You may add Your own copyright statement to Your modifications and 654 | may provide additional or different license terms and conditions 655 | for use, reproduction, or distribution of Your modifications, or 656 | for any such Derivative Works as a whole, provided Your use, 657 | reproduction, and distribution of the Work otherwise complies with 658 | the conditions stated in this License. 659 | 660 | 5. Submission of Contributions. Unless You explicitly state otherwise, 661 | any Contribution intentionally submitted for inclusion in the Work 662 | by You to the Licensor shall be under the terms and conditions of 663 | this License, without any additional terms or conditions. 664 | Notwithstanding the above, nothing herein shall supersede or modify 665 | the terms of any separate license agreement you may have executed 666 | with Licensor regarding such Contributions. 667 | 668 | 6. Trademarks. This License does not grant permission to use the trade 669 | names, trademarks, service marks, or product names of the Licensor, 670 | except as required for reasonable and customary use in describing the 671 | origin of the Work and reproducing the content of the NOTICE file. 672 | 673 | 7. Disclaimer of Warranty. Unless required by applicable law or 674 | agreed to in writing, Licensor provides the Work (and each 675 | Contributor provides its Contributions) on an "AS IS" BASIS, 676 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 677 | implied, including, without limitation, any warranties or conditions 678 | of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A 679 | PARTICULAR PURPOSE. You are solely responsible for determining the 680 | appropriateness of using or redistributing the Work and assume any 681 | risks associated with Your exercise of permissions under this License. 682 | 683 | 8. Limitation of Liability. In no event and under no legal theory, 684 | whether in tort (including negligence), contract, or otherwise, 685 | unless required by applicable law (such as deliberate and grossly 686 | negligent acts) or agreed to in writing, shall any Contributor be 687 | liable to You for damages, including any direct, indirect, special, 688 | incidental, or consequential damages of any character arising as a 689 | result of this License or out of the use or inability to use the 690 | Work (including but not limited to damages for loss of goodwill, 691 | work stoppage, computer failure or malfunction, or any and all 692 | other commercial damages or losses), even if such Contributor 693 | has been advised of the possibility of such damages. 694 | 695 | 9. Accepting Warranty or Additional Liability. While redistributing 696 | the Work or Derivative Works thereof, You may choose to offer, 697 | and charge a fee for, acceptance of support, warranty, indemnity, 698 | or other liability obligations and/or rights consistent with this 699 | License. However, in accepting such obligations, You may act only 700 | on Your own behalf and on Your sole responsibility, not on behalf 701 | of any other Contributor, and only if You agree to indemnify, 702 | defend, and hold each Contributor harmless for any liability 703 | incurred by, or claims asserted against, such Contributor by reason 704 | of your accepting any such warranty or additional liability. 705 | 706 | END OF TERMS AND CONDITIONS 707 | 708 | APPENDIX: How to apply the Apache License to your work. 709 | 710 | To apply the Apache License to your work, attach the following 711 | boilerplate notice, with the fields enclosed by brackets "{}" 712 | replaced with your own identifying information. (Don't include 713 | the brackets!) The text should be enclosed in the appropriate 714 | comment syntax for the file format. We also recommend that a 715 | file or class name and description of purpose be included on the 716 | same "printed page" as the copyright notice for easier 717 | identification within third-party archives. 718 | 719 | Copyright 2018 Gregor Martynus and other contributors. 720 | 721 | Licensed under the Apache License, Version 2.0 (the "License"); 722 | you may not use this file except in compliance with the License. 723 | You may obtain a copy of the License at 724 | 725 | http://www.apache.org/licenses/LICENSE-2.0 726 | 727 | Unless required by applicable law or agreed to in writing, software 728 | distributed under the License is distributed on an "AS IS" BASIS, 729 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 730 | See the License for the specific language governing permissions and 731 | limitations under the License. 732 | 733 | 734 | bottleneck 735 | MIT 736 | The MIT License (MIT) 737 | 738 | Copyright (c) 2014 Simon Grondin 739 | 740 | Permission is hereby granted, free of charge, to any person obtaining a copy of 741 | this software and associated documentation files (the "Software"), to deal in 742 | the Software without restriction, including without limitation the rights to 743 | use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of 744 | the Software, and to permit persons to whom the Software is furnished to do so, 745 | subject to the following conditions: 746 | 747 | The above copyright notice and this permission notice shall be included in all 748 | copies or substantial portions of the Software. 749 | 750 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 751 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS 752 | FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR 753 | COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 754 | IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 755 | CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 756 | 757 | 758 | fast-content-type-parse 759 | MIT 760 | MIT License 761 | 762 | Copyright (c) 2023 The Fastify Team 763 | 764 | The Fastify team members are listed at https://github.com/fastify/fastify#team 765 | and in the README file. 766 | 767 | Permission is hereby granted, free of charge, to any person obtaining a copy 768 | of this software and associated documentation files (the "Software"), to deal 769 | in the Software without restriction, including without limitation the rights 770 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 771 | copies of the Software, and to permit persons to whom the Software is 772 | furnished to do so, subject to the following conditions: 773 | 774 | The above copyright notice and this permission notice shall be included in all 775 | copies or substantial portions of the Software. 776 | 777 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 778 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 779 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 780 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 781 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 782 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 783 | SOFTWARE. 784 | 785 | octokit 786 | MIT 787 | The MIT License 788 | 789 | Copyright (c) 2023 Octokit contributors 790 | 791 | Permission is hereby granted, free of charge, to any person obtaining a copy 792 | of this software and associated documentation files (the "Software"), to deal 793 | in the Software without restriction, including without limitation the rights 794 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 795 | copies of the Software, and to permit persons to whom the Software is 796 | furnished to do so, subject to the following conditions: 797 | 798 | The above copyright notice and this permission notice shall be included in 799 | all copies or substantial portions of the Software. 800 | 801 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 802 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 803 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 804 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 805 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 806 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 807 | THE SOFTWARE. 808 | 809 | 810 | toad-cache 811 | MIT 812 | MIT License 813 | 814 | Copyright (c) 2023 Igor Savin 815 | 816 | Permission is hereby granted, free of charge, to any person obtaining a copy 817 | of this software and associated documentation files (the "Software"), to deal 818 | in the Software without restriction, including without limitation the rights 819 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 820 | copies of the Software, and to permit persons to whom the Software is 821 | furnished to do so, subject to the following conditions: 822 | 823 | The above copyright notice and this permission notice shall be included in all 824 | copies or substantial portions of the Software. 825 | 826 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 827 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 828 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 829 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 830 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 831 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 832 | SOFTWARE. 833 | 834 | 835 | tunnel 836 | MIT 837 | The MIT License (MIT) 838 | 839 | Copyright (c) 2012 Koichi Kobayashi 840 | 841 | Permission is hereby granted, free of charge, to any person obtaining a copy 842 | of this software and associated documentation files (the "Software"), to deal 843 | in the Software without restriction, including without limitation the rights 844 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 845 | copies of the Software, and to permit persons to whom the Software is 846 | furnished to do so, subject to the following conditions: 847 | 848 | The above copyright notice and this permission notice shall be included in 849 | all copies or substantial portions of the Software. 850 | 851 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 852 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 853 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 854 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 855 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 856 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 857 | THE SOFTWARE. 858 | 859 | 860 | undici 861 | MIT 862 | MIT License 863 | 864 | Copyright (c) Matteo Collina and Undici contributors 865 | 866 | Permission is hereby granted, free of charge, to any person obtaining a copy 867 | of this software and associated documentation files (the "Software"), to deal 868 | in the Software without restriction, including without limitation the rights 869 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 870 | copies of the Software, and to permit persons to whom the Software is 871 | furnished to do so, subject to the following conditions: 872 | 873 | The above copyright notice and this permission notice shall be included in all 874 | copies or substantial portions of the Software. 875 | 876 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 877 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 878 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 879 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 880 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 881 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 882 | SOFTWARE. 883 | 884 | 885 | universal-github-app-jwt 886 | MIT 887 | The MIT License 888 | 889 | Copyright (c) 2019 Gregor Martynus 890 | 891 | Permission is hereby granted, free of charge, to any person obtaining a copy 892 | of this software and associated documentation files (the "Software"), to deal 893 | in the Software without restriction, including without limitation the rights 894 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 895 | copies of the Software, and to permit persons to whom the Software is 896 | furnished to do so, subject to the following conditions: 897 | 898 | The above copyright notice and this permission notice shall be included in 899 | all copies or substantial portions of the Software. 900 | 901 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 902 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 903 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 904 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 905 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 906 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 907 | THE SOFTWARE. 908 | 909 | 910 | universal-user-agent 911 | ISC 912 | # [ISC License](https://spdx.org/licenses/ISC) 913 | 914 | Copyright (c) 2018-2021, Gregor Martynus (https://github.com/gr2m) 915 | 916 | Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies. 917 | 918 | THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 919 | -------------------------------------------------------------------------------- /eslint.config.js: -------------------------------------------------------------------------------- 1 | // ESLint v9+ flat config migration from .eslintrc.json 2 | import js from '@eslint/js'; 3 | import github from 'eslint-plugin-github'; 4 | import jest from 'eslint-plugin-jest'; 5 | import tseslint from 'typescript-eslint'; 6 | import prettier from 'eslint-plugin-prettier'; 7 | 8 | export default [ 9 | // Global ignores (must be first) 10 | { 11 | ignores: ['dist/**', 'lib/**', 'node_modules/**', 'jest.config.js'] 12 | }, 13 | 14 | // Base configurations 15 | js.configs.recommended, 16 | ...tseslint.configs.recommended, 17 | 18 | // Plugin configurations for specific file types 19 | { 20 | files: ['**/*.ts', '**/*.tsx'], 21 | plugins: { 22 | '@typescript-eslint': tseslint.plugin, 23 | github, 24 | jest, 25 | prettier, 26 | }, 27 | languageOptions: { 28 | parser: tseslint.parser, 29 | parserOptions: { 30 | ecmaVersion: 2020, 31 | sourceType: 'module', 32 | project: './tsconfig.json', 33 | tsconfigRootDir: import.meta.dirname, 34 | }, 35 | globals: { 36 | process: 'readonly', 37 | console: 'readonly', 38 | Buffer: 'readonly', 39 | __dirname: 'readonly', 40 | __filename: 'readonly', 41 | module: 'readonly', 42 | require: 'readonly', 43 | exports: 'readonly', 44 | global: 'readonly', 45 | } 46 | }, 47 | rules: { 48 | 'i18n-text/no-en': 'off', 49 | 'eslint-comments/no-use': 'off', 50 | 'import/no-namespace': 'off', 51 | 'no-unused-vars': 'off', 52 | '@typescript-eslint/no-unused-vars': 'error', 53 | '@typescript-eslint/no-require-imports': 'error', 54 | '@typescript-eslint/array-type': 'error', 55 | '@typescript-eslint/await-thenable': 'error', 56 | '@typescript-eslint/ban-ts-comment': 'error', 57 | 'camelcase': 'off', 58 | '@typescript-eslint/consistent-type-assertions': 'error', 59 | '@typescript-eslint/explicit-function-return-type': ['error', { allowExpressions: true }], 60 | '@typescript-eslint/no-array-constructor': 'error', 61 | '@typescript-eslint/no-empty-interface': 'error', 62 | '@typescript-eslint/no-explicit-any': 'error', 63 | '@typescript-eslint/no-namespace': 'error', 64 | '@typescript-eslint/no-non-null-assertion': 'warn', 65 | '@typescript-eslint/no-useless-constructor': 'error', 66 | '@typescript-eslint/no-var-requires': 'error', 67 | 'semi': 'off', 68 | }, 69 | linterOptions: { 70 | reportUnusedDisableDirectives: true, 71 | }, 72 | }, 73 | ]; 74 | -------------------------------------------------------------------------------- /jest.config.js: -------------------------------------------------------------------------------- 1 | export default { 2 | preset: 'ts-jest', 3 | testEnvironment: 'node', 4 | clearMocks: true, 5 | moduleFileExtensions: ['js', 'ts'], 6 | testMatch: ['**/*.test.ts'], 7 | transform: { 8 | '^.+\\.ts$': ['ts-jest', { 9 | tsconfig: 'tsconfig.test.json' 10 | }] 11 | }, 12 | transformIgnorePatterns: [ 13 | 'node_modules/(?!(octokit|@octokit)/)' 14 | ], 15 | verbose: true 16 | } -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "typescript-action", 3 | "version": "0.0.0", 4 | "private": true, 5 | "description": "TypeScript template action", 6 | "main": "lib/main.js", 7 | "scripts": { 8 | "build": "tsc", 9 | "format": "prettier --write '**/*.ts'", 10 | "format-check": "prettier --check '**/*.ts'", 11 | "lint": "eslint src/**/*.ts", 12 | "package": "ncc build lib/main.js --license licenses.txt", 13 | "test": "jest", 14 | "btest": "npm run build & jest", 15 | "all": "npm run build && npm run format && npm run lint && npm run package && npm test" 16 | }, 17 | "repository": { 18 | "type": "git", 19 | "url": "git+https://github.com/actions/typescript-action.git" 20 | }, 21 | "keywords": [ 22 | "actions", 23 | "node", 24 | "setup" 25 | ], 26 | "author": "", 27 | "license": "MIT", 28 | "dependencies": { 29 | "@actions/core": "^1.11.1", 30 | "octokit": "^5.0.3" 31 | }, 32 | "devDependencies": { 33 | "@types/jest": "^29.5.3", 34 | "@typescript-eslint/eslint-plugin": "^8.35.1", 35 | "@typescript-eslint/parser": "^8.35.1", 36 | "@vercel/ncc": "^0.38.3", 37 | "eslint": "^9.27.0", 38 | "eslint-plugin-github": "^6.0.0", 39 | "eslint-plugin-jest": "^28.11.0", 40 | "eslint-plugin-prettier": "^5.4.0", 41 | "jest": "^29.6.1", 42 | "js-yaml": "^4.1.0", 43 | "prettier": "^3.0.0", 44 | "ts-jest": "^29.3.4", 45 | "typescript": "^5.2.2", 46 | "typescript-eslint": "^8.35.1" 47 | } 48 | } 49 | -------------------------------------------------------------------------------- /src/generate-sbom.ts: -------------------------------------------------------------------------------- 1 | import * as core from '@actions/core' 2 | import {Octokit} from 'octokit' 3 | import fs from 'fs' 4 | import {wrapError} from './utils' 5 | 6 | export async function generateSBOM( 7 | token: string, 8 | owner: string, 9 | repo: string, 10 | sha: string, 11 | octokit?: Octokit 12 | ): Promise